Ily*_*lya 5 macos cocoa nsuserdefaults
我正在通过类改变.GlobalPreferences NSUserSubstitutions首选项NSUserDefaults(通过PyObjC,但除此之外).
此首选项控制OS X的文本替换功能(例如,可以用"©"代替"(c)").
更改首选项后,我希望它立即应用于所有正在运行的应用程序.通过"系统偏好设置"进行更改时,会立即应用.我应该如何通知其他应用程序立即应用它?
使用以下代码:
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(gotIt:) name:nil object:nil];
Run Code Online (Sandbox Code Playgroud)
我能够检测到系统偏好设置应用程序会NSUserReplacementItemsEnabledChanged在文本替换偏好设置更改时发布一条名为“通知”的通知。
知道了这一点,您现在可以在更改首选项后发布适当的通知,以告知所有打开的应用程序:
[[NSDistributedNotificationCenter defaultCenter] postNotificationName:@"NSUserReplacementItemsEnabledChanged" object:self];
Run Code Online (Sandbox Code Playgroud)
请记住,这NSUserReplacementItemsEnabledChanged在任何地方都没有记录,因此这种行为可能随时改变。
| 归档时间: |
|
| 查看次数: |
274 次 |
| 最近记录: |