我正在制作一个位于状态栏中的应用程序(靠近时钟,电源指示灯和其他图标)。然而,为了让用户更改首选项,我需要打开一个完整的窗口。
但是,由于应用程序为LSUIElement
,因此它不会显示在 alt + 标签上。这意味着当用户点击其他窗口时,pref窗口将被移动到后面并且没有简单的方法可以回到它。 (您可以逐个折叠窗口或使用 F9 ,但这一切都有点痛苦。)
所以我们在背景中有一个无用的悬空窗口和迷茫的用户(“我的窗口在哪里?”)。
有没有更好的方法来解决这个问题?许多类似的实用程序(例如this和this)都有相同的问题,而且他们的作者在OSX开发中可能不是像我一样的绿色角色。
如果有人感兴趣,有问题的申请是stackapps。
谢谢
答案 0 :(得分:3)
标准方法是
(1)编写一个小助手首选项应用程序并通过NSUserDefaults addSuiteNamed将其首选项词典添加到您的无窗口应用程序: - 这样您的主应用程序将通过NSUserDefaults API透明地访问帮助程序中设置的首选项;
(2)使用分布式通知向您的无窗口应用通知偏好更改。
答案 1 :(得分:1)
您可以将其转换为Newt.PrefPane。然后可以通过“系统偏好设置”窗口访问它。除此之外 - 我认为Newt是一款非常棒的应用程序,以这种方式处理ui元素应用程序的偏好非常普遍。
答案 2 :(得分:1)
由于您的用户无论如何都不会在该首选项窗格上花费大量时间,因此优先级窗格始终保持在前面不是一个好主意吗? 这就是Dropbox使用的大型应用程序。