再次单击应用程序图标时显示 Cocoa 应用程序的首选项

Posted

技术标签:

【中文标题】再次单击应用程序图标时显示 Cocoa 应用程序的首选项【英文标题】:Showing Cocoa app's preferences on clicking app icon again 【发布时间】:2010-09-23 22:14:44 【问题描述】:

对于后台应用程序 (LSUIElement=1),如果用户在应用程序图标已在运行时双击它,那么让其“首选项”或“配置”窗口弹出的最优雅的方法是什么?

这是假设用户无法从其他任何地方(例如菜单栏状态项菜单)访问应用的首选项。

我认为理想的方法会阻止首选项窗口在初始启动时显示,但足够聪明,可以在随后双击应用程序图标时显示它。

谢谢

【问题讨论】:

【参考方案1】:

你只需要实现一个NSApplicationDelegate协议方法applicationShouldHandleReopen:hasVisibleWindows:

- (BOOL)applicationShouldHandleReopen:(NSApplication *)theApplication hasVisibleWindows:(BOOL)flag

     // open pref pane
     return NO;

就足够了;只有在重新打开应用时才会调用此委托方法。

【讨论】:

现在太明显了!我浏览了 NSApplicationDelegate 协议,完全错过了这个协议。那是为了在凌晨 2 点以后编码 :)

以上是关于再次单击应用程序图标时显示 Cocoa 应用程序的首选项的主要内容,如果未能解决你的问题,请参考以下文章