首先,对于 Cocoa 和 Objective-C 来说是个新手,所以如果这不清楚并且我误用了所有术语,我深表歉意,欢迎指正。
我正在尝试编写一个非常简单的应用程序,其菜单栏中的内容令人不寒而栗。
我已经非常接近了,我可以在那里得到一个基本的文本菜单,但我真的很喜欢 在实际菜单部分有一个自定义 View ,如下所示:
当我发现 the example in this answer 时,我真的充满希望,我可以看到他使用自己的 View 对象将 setView
发送到他的 statusItem
的位置,但我想在 Interface Builder 中设计我的 View 。
我找到了this code我可以为我初始化的自定义设计的 View 对象设置一个实例变量(可能以一种非常糟糕的方式),但是当我尝试将该变量发送到 setView
时,什么也没有显示。
我读了很多关于 drawRect
的内容,我猜它与答案有关,但我的 Cocoa 还没有。
有人可以完整描述所有这些步骤吗?我觉得我有很多拼图,但我失去了盖子。
最佳答案
你不需要使用drawRect(除非你正在做你自己的自定义绘图)或设置框架,你可以在IB中完成。只需拖出一个自定义 View ,调整适当的大小,然后将您想要的任何内容放入其中即可。在连接到它的类之一中有一个 IBOutlet,并在创建状态栏项目后调用 setView: ,并使用自定义 View 的 IBOutlet 作为参数。状态栏只有 22 像素高,因此您的 View 需要考虑到这一点。相对于 IB 中的自动调整大小功能中的支柱,此状态项似乎有一些奇怪的行为。我注意到,如果顶部支柱或右侧支柱单独打开,则不会出现 View (但左侧或底部都可以)。它似乎也可以在所有 4 个功能开启或关闭的情况下工作。
关于objective-c - 如何在菜单栏中使用从 Nib 加载的自定义 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9914740/