gpt4 book ai didi

objective-c - 带有图像和文本的 NSMenuItem

转载 作者:行者123 更新时间:2023-12-03 16:23:33 24 4
gpt4 key购买 nike

我有一个关于 NSMenuItems 的问题。

我想做的是使用 native OS X 组件复制 java GUI,因此我使用的语言是 Cocoa。我想做的是让每个菜单项都有一个图像,然后在它旁边有一些文本。

我已经对它做了一些研究,我的第一个停靠点(一如既往,哈哈)是苹果文档,它有这个方便的示例,说明了如何在菜单项中嵌入 View :

https://developer.apple.com/library/mac/#samplecode/MenuItemView/Listings/MyWindowController_m.html#//apple_ref/doc/uid/DTS10004136-MyWindowController_m-DontLinkElementID_8

作为 cocoa 相对较新的人,我想我必须重写 NSMenuItem 的绘图方法之一。但不太确定。我正在考虑的另一个想法是创建一个包含图像和一些文本的自定义 View 。

任何其他想法/验证或讨论将不胜感激。

谢谢大家!

哦,GUI 创建是手工完成的,没有界面生成器。

最佳答案

好的,现在我有了旁边带有图标的菜单项。对于任何对此感兴趣的人来说,它是(我还没有对其进行泄漏分析或任何其他内容)。

首先,将所有需要的图像放入“Resources”文件夹(xcode 3.1.4 中的名称为“Resources”)。

现在,例如,在我们拥有所有图像之后,我们想要使用名为“eraser.png”和“eraser_on.png”的图像,并且我想将它们附加到第三个菜单项。为了实现这一目标,我们执行以下操作:

下面的代码将获取菜单中位置 3 的菜单项

NSMenuItem *item = [ nameOfPopUpButton itemAtIndex:2];

下面的代码将菜单项的图像设置为“eraser.png”

[ item setImage: [ NSImage imageNamed:@"eraser"] ];

这就是您为菜单项设置的图像(它将位于文本的左侧,即文本之前)。

如果您想要不同状态下的不同图像,例如当用户按下它时,请使用此方法(我自己没有测试过,但听起来很合理:D,并且该功能直接来自 api)

[item setOnStateImage: [ NSImage imageNamed:@"eraser_on" ] ]

但是,您可以将其保留为零或根本不设置它,它将采用默认颜色

希望这对某人有帮助。

将其拼凑在一起:https://developer.apple.com/library/mac/#samplecode/MenuMadness/Listings/Controller_m.html#//apple_ref/doc/uid/DTS40008870-Controller_m-DontLinkElementID_4

谢谢:)

关于objective-c - 带有图像和文本的 NSMenuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11575593/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com