Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何在从nib加载的菜单栏中使用自定义NSView_Objective C_Macos_Cocoa - Fatal编程技术网

Objective c 如何在从nib加载的菜单栏中使用自定义NSView

Objective c 如何在从nib加载的菜单栏中使用自定义NSView,objective-c,macos,cocoa,Objective C,Macos,Cocoa,首先,对于Cocoa和Objective-C,我是新手,因此,如果不清楚,并且我误用了所有术语,我深表歉意,请您温和更正 我正在尝试编写一个非常简单的应用程序,它的菜单栏中有一些令人毛骨悚然的东西 我已经很接近了,我可以在上面找到一个基本的文本菜单,但我真的很想 要在实际菜单部分中具有自定义视图,请执行以下操作: 当我发现时,我真的充满了希望,我可以看到他用自己的视图对象将setView发送到他的statusItem,但我想在Interface Builder中设计我的视图 我发现我可以将一个

首先,对于Cocoa和Objective-C,我是新手,因此,如果不清楚,并且我误用了所有术语,我深表歉意,请您温和更正

我正在尝试编写一个非常简单的应用程序,它的菜单栏中有一些令人毛骨悚然的东西

我已经很接近了,我可以在上面找到一个基本的文本菜单,但我真的很想 要在实际菜单部分中具有自定义视图,请执行以下操作:

当我发现时,我真的充满了希望,我可以看到他用自己的视图对象将
setView
发送到他的
statusItem
,但我想在Interface Builder中设计我的视图

我发现我可以将一个实例变量设置为初始化的自定义视图对象(可能是一种非常糟糕的方式),但当我尝试将该变量发送到
setView
时,什么都没有显示

我读了很多关于drawRect的书,我猜这与答案有关,但我的可可排骨还没有


有人能完整地描述所有这些步骤吗?我觉得我有很多拼图,但我把盖子弄丢了

您不需要使用drawRect(除非您正在进行自定义绘图)或设置框架,您可以在IB中完成。只需拖出一个自定义视图,适当调整其大小,然后将任何需要的内容放入其中即可。在连接到它的一个类中有一个IBOutlet,在创建状态栏项后,使用自定义视图的IBOutlet作为参数调用setView:。状态栏只有22像素高,因此您的视图需要考虑到这一点。对于IB中自动调整大小功能中的支柱,此状态项似乎有一些奇怪的行为。我注意到,如果顶部支柱或右侧支柱单独打开,则视图不会显示(但左侧或底部都可以)。这似乎也适用于所有4个开关。

我还打赌我没有正确设置帧