對於我的Mac OSX應用程序,當點擊一個按鈕時,我有一個功能可以刪除屏幕右上角的系統時鐘。控制顯示系統菜單的首選項(包括系統時鐘)存儲在〜/ Library/Preferences/com.apple.systemuiserver.plist中。我能夠更新該文件中的相關首選項以刪除系統時鐘。但是,SystemUIServer應用程序需要重新啓動,以便可以重新加載新的首選項,並且可以刪除時鐘。這是我用來重新啓動SystemUIServer的代碼。如何將com.apple.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的偏好?理想情況下,我希望系統時鐘的清除與「系統偏好設置」應用程序的「日期&時間首選項」中的時鐘顯示功能一樣乾淨。