NSStatusItem仅在我的方法之外定义时才显示

时间:2014-05-01 09:42:31

标签: objective-c macos nsstatusitem

我是Mac OSX开发的新手。我想构建一个允许输入文本的全局菜单项,按下返回后,它应该跳转到一个网页。没什么特别的。

令我困惑的是我的简单代码的以下部分:

我在(void)applicationDidFinishLaunching:(NSNotification *)aNotification的{​​{1}}方法中创建了我的全局菜单项及其NSMenu下拉列表。

如果我说,AppDelegate.m是一个私有的本地方法变量,运行应用程序后状态项将不会显示在全局菜单栏中。

如果我将变量声明为私有类全局(在方法上方),则图标显示为希望。

感谢您的帮助。

完整的源代码:

NSStatusItem

1 个答案:

答案 0 :(得分:3)

因为如果您只在方法中声明对象并且不在其他地方保留对它的引用,那么它将作用于该方法。当方法完成执行时,您的对象将被释放并消失。 如果您希望它在应用程序运行时生存,您可能希望将其分配给应用程序委托的属性或与应用程序一样长的其他对象。