0

我使用 Cocoa“状态栏”教程 ( http://cocoatutorial.grapewave.com/tag/status-bar/ ) 作为起点,试图为自己构建一个仅显示为 StatusItem 的代理。

这个应用程序没有主 NSWindow 对象,它有三个与之关联的 NSPanel。一个 NSPanel 用作“应用程序首选项”窗口,另外两个只是提示用户使用 OK 按钮输入一小段文本。

首选项面板通过 NSMenuItem 启动,如下所示:

NSMenuItem *showPrefsMI = [[NSMenuItem alloc] initWithTitle:@"Show Prefs" action:@selector(makeKeyAndOrderFront:) keyEquivalent:@""];
[showPrefsMI setTarget:prefsPanel];
[menu addItem:showPrefsMI];

当我从 XCode 内部构建和运行应用程序时,一切似乎都运行良好。但是,当我从 Xcode 外部(例如 Finder)运行应用程序时,这些窗口根本不会出现。

此外,我可以在 XCode 中复制该行为。如果我显示首选项面板,然后单击关闭它(例如,我单击此 Safari 窗口),首选项面板就会消失,再也不会出现。我必须从 XCode 中物理停止应用程序,然后再次运行它才能重新出现首选项面板。

提前感谢任何人的帮助!

4

0 回答 0