macos - 以编程方式篡改 Mac OSX 菜单栏设置

标签 macos scripting applescript

我有一个程序需要在菜单栏中打开和关闭系统时钟。
这将做到这一点:

defaults write com.apple.MenuBarClock ClockEnabled -bool false

(使用 false -> true 将其重新打开)。

除了在我手动打开日期和时间设置之前它实际上不会生效(只是打开设置会导致菜单栏刷新,并且时钟根据之前发出的“默认写入”命令出现或消失)。

问题:

是否有刷新菜单栏显示的命令?
或者以编程方式打开日期和时间系统首选项?

PS:感谢指出“killall SystemUIServer”的第一个答案,但除了我遇到的奇怪问题之外,它似乎太慢了。整个菜单栏刷新,它需要整整一秒钟。我真的只想打开和关闭时钟,就像在日期和时间首选项中手动单击“在菜单栏中显示日期和时间”时发生的情况一样。

最佳答案

试试这个:

defaults write com.apple.MenuBarClock ClockEnabled -bool false
killall SystemUIServer

使用 killall SystemUIServer并不危险,因为该进程会在被终止后立即重新启动。从我的简短测试来看,这似乎会重置菜单栏时钟以及其他系统菜单栏项目(WiFi、电池等)。

关于macos - 以编程方式篡改 Mac OSX 菜单栏设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3153685/

相关文章:

objective-c - 委托(delegate)连接在 Cocoa-Applescript 中接收 shouldStartLoadWithRequest?

applescript - 从 csv 文件填充 iTunes 播放列表

macos - 使用 Automator 重新启动 Apple AirPort Extreme

swift - 使用 "Unknown Command Type <NSBatchDeleteRequest,..>"执行 NSBatchDeleteRequest 时应用程序崩溃

macos - NSTextfield NSPopover 的透明背景

ruby - 我怎样才能可靠地发现 Ruby 可执行文件的完整路径?

c++ - 一种简单编译的脚本语言

linux - 如何创建循环打印ps信息的脚本

macos - 错误 : linking with `cc` failed: exit status: 1 when building rust program on macos

objective-c - 将初始工具栏项设置为选定