再次单击应用程序图标时显示 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 应用程序的首选项的主要内容,如果未能解决你的问题,请参考以下文章

UISearchBar 在搜索没有结果时显示标签,但在单击 UISearchBar 中的 x 时不会再次隐藏标签

Cocoa osx:为所有正在运行的应用程序在停靠元素上添加一个菜单项

加载网页时隐藏导航

手机日历封面为啥不同时显示当天日期

在按钮单击时显示/隐藏 ImageView

单击四个按钮中的任何一个时显示插页式广告