- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
对于我的 Mac OSX 应用程序,我有一个功能可以在单击按钮时删除屏幕右上角的系统时钟。控制显示哪些系统菜单(包括系统时钟)的首选项存储在 ~/Library/Preferences/com.apple.systemuiserver.plist 中。我能够更新该文件中的相关首选项以删除系统时钟。但是,需要重新启动 SystemUIServer 应用程序,以便重新加载新的首选项并删除时钟。这是我用来重启 SystemUIServer 的代码。
NSTask *killSystemUITask = [[NSTask alloc] init];
NSMutableArray *args = [NSMutableArray array];
[args addObject:@"SystemUIServer"];
[killSystemUITask setLaunchPath:@"/usr/bin/killall"];
[killSystemUITask setArguments:args];
[killSystemUITask launch];
当 SystemUIServer 被终止时,OSX 会自动重启它。上面的代码有效,但系统时钟的删除并不像我想要的那样干净。整个系统栏一秒消失。谁能想到更好的方法将首选项重新加载到 SystemUIServer 中?理想情况下,我希望系统时钟的删除与系统偏好设置应用程序的日期和时间偏好设置中的时钟显示功能一样干净。
最佳答案
您是否考虑过使用 AppleEvents/OSAScript 来驱动 pref pane 本身?虽然网络首选项 Pane 似乎是唯一具有完全内置脚本的 Pane ,但您可以使用系统事件驱动任何 UI。在 AppleScript 中制作原型(prototype)非常容易。这是我想出的:
tell application "System Preferences"
reveal pane "Date & Time"
reveal anchor "ClockPref" of pane "Date & Time"
tell application "System Events"
tell tab group 1 of window 1 of process "System Preferences"
repeat with cbIndex from 0 to count of checkboxes
tell checkbox cbIndex
if title contains "menu bar" then
click
exit repeat
end if
end tell
end repeat
end tell
end tell
quit
end tell
您可以通过使用 NSAppleScript 对象按原样使用它,或者如果您感觉受虐狂,您可以深入了解确定要发送的正确 AppleEvents 的细节。 (为了理智,我推荐前一种方法,但后者在运行时执行得更快。)
优点:简单。
缺点:启动系统偏好设置(可以看到它在 Dock 中跳动),需要启用“为辅助设备启用访问”(就像许多其他事情一样)
很难说这与终止 SystemUIServer 相比在视觉上好还是坏,但它几乎肯定对可能与 SystemUIServer 交互的任何其他组件更友好。
就消除码头反弹而言,这 question over here提到如何在没有停靠栏图标的情况下启动。对此我可以补充一点,在过去,我一直在为这个问题争论不休,而我想出的解决方案在高层次上是这样的:
pax -rwl
将对此有所帮助)NSUIElement = true
之外,还有其他选项,但我将这些作为练习留给读者和谷歌。)在尝试驱动 3rd 方应用程序时,这种方法对我来说非常可靠。我猜你将来可能会遇到签名/沙盒系统应用程序的问题。 (即更改他们的 Info.plist 会更改签名,他们可能会拒绝运行。)而且,自然地,任何沙盒应用程序都需要特定的权利或异常(exception)才能发送 AppleEvents,但我想这也是杀死系统进程的真实情况(如果这甚至可以从沙盒应用程序中完成的话。)
最后,你应该 file a bug report with Apple如果您认为这很重要,请为此请求一流的 API 或脚本能力。
关于objective-c - 如何将 com.apple.systemuiserver 首选项重新加载到 SystemUIServer 应用程序中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5143117/
有谁知道如何使 DIV 的行为方式使其始终尝试占用其最大空间(无论内容如何)? 例如,如果我有一个 max-height 的 DIV的 600px和一个 min-height的 200px ,我怎样才
考虑两个表表A和表B 表A |id|driver_id|vehicle_id|is_allowed|license_number|driver_name| 表B |id|driver_id|vehic
对于 ASP.NET 应用程序,自定义脏话删除器/替换器的最佳实践实现方法是什么? 如果这是一个数据表解决方案,是否有免费的资源来获取数据? (类似于找到可以导入到系统中进行拼写检查的公共(publi
有很多 jquery 工具提示插件。 我应该使用哪一个?为什么? 最佳答案 我们使用过qTip在我们的一个项目中,因为它符合我们的所有要求,开发和维护良好,附带优秀的文档和已经很漂亮的模板,并且还为我
我在Internet上四处张望,找不到相关信息。我的程序需要向PowerShell配置文件中编写一些PowerShell代码。如果没有配置文件,我的程序将创建一个。问题是应使用哪种编码来创建Power
在 D、int、uint 中使用 foreach 时,循环索引的首选类型是什么?或者只是通过省略类型自动实现? 最佳答案 一般来说,索引应该是size_t。与长度相同。如果您尝试使用 int 或 ui
这个问题在这里已经有了答案: Repeat each row of data.frame the number of times specified in a column (9 个回答) 2年前关闭
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
我有一个看起来像这样的字符串: "Element 1 | Element 2| Element 3: element 4" 我想对冒号后面的源字符串部分进行子串(到源字符串的末尾),但如果没有冒号,那
我接受任何解释语言 Perl、Python、Bash 等。但我更喜欢 Perl,因为它是我想要学习的。我有一个时间戳列表,例如: 17:31:16 17:31:16 17:31:18 17:31:29
我想在后台运行程序。首选 C#我想把图标放在托盘里。在指定的时间同步文件夹(我知道如何同步文件夹)。如何在后台运行它并开始同步(例如凌晨 2 点)? 最佳答案 您需要考虑使用 windows sche
我有一个 onChange 事件处理程序,它的结构如下: (e) => (value => this.setState(prevState => ({ form: {
我想在windows 7中捕获删除操作。如果用户从计算机上删除了文件,我需要在文件被删除时存储一条记录,以及删除了哪个文件。 一般文件操作,不针对特定文件夹或软件。所以假设用户从 d:\testFol
是否有任何库或开源函数可以近似通过以不规则间隔获取的一些值来描述的线下的面积? 首选 Action Script,但 Java 也可以正常工作。 最佳答案 您可以使用as3mathlib数学图书馆。这
对于我的网络应用程序,我希望提供给用户的图像具有响应性。此外,我还想在图像标签中指定 width 和 height 属性,这样在移动连接速度较慢的情况下,就不会出现浏览器重排。 是否可以通过使用纯 H
在展示公司 Logo 时,我今天看到了一些新东西。 他们在 h1 标签上设置了高度和宽度以及 overflow:hidden 并在 h1 标签内的 a 标签上设置了负边距以防止文本显示。 代码是这样的
我使用 Lucene 库开发了一个索引和搜索应用程序。但是这个库在我的上下文中在自定义排名方面有一些限制,除了它的性能之外,我需要可扩展性和访问各种词频等。是否有任何强大的开源全文库可用? 最佳答案
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
这是一个关于当我需要在列表中查找对象实例时如何实现 equals 方法的问题,该实例的值是我在其成员中拥有的实例之一。 我有一个实现了 equals 的对象: class User { pri
我是一名优秀的程序员,十分优秀!