macos – 如何向其他Cocoa应用程序发出偏好更改的信号?

macos – 如何向其他Cocoa应用程序发出偏好更改的信号?,第1张

概述我正在通过NSUserDefaults类更改.GlobalPreferences NSUserSubstitutions首选项(通过PyObjC,但除此之外). 该偏好控制OS X的文本替换特征(例如,可以用“©”代替“(c)”). 更改首选项后,我希望它立即应用于所有正在运行的应用程序.通过“系统偏好设置”进行更改时,会立即应用.我应该如何通知其他应用程序立即应用它? 更新:这是项目:https 我正在通过NSUserDefaults类更改.GlobalPreferences NSUserSubstitutions首选项(通过PyObjC,但除此之外).

该偏好控制OS X的文本替换特征(例如,可以用“©”代替“(c)”).

更改首选项后,我希望它立即应用于所有正在运行的应用程序.通过“系统偏好设置”进行更改时,会立即应用.我应该如何通知其他应用程序立即应用它?

更新:这是项目:https://github.com/ikonst/mac-tex-substitutions

解决方法 使用以下代码:

[[NSdistributedNotificationCenter defaultCenter] addobserver:self selector:@selector(gotIt:) name:nil object:nil];

当文本替换首选项发生更改时,我能够检测到系统首选项应用程序发布了名为NSUserReplacementItemsEnabledChanged的通知.

知道了,您现在可以在更改首选项后发布足够的通知,以便了解所有打开的应用程序:

[[NSdistributedNotificationCenter defaultCenter] postNotificationname:@"NSUserReplacementItemsEnabledChanged" object:self];

请记住,NSUserReplacementItemsEnabledChanged没有记录在任何地方,因此这种行为可以随时更改.

总结

以上是内存溢出为你收集整理的macos – 如何向其他Cocoa应用程序发出偏好更改的信号?全部内容,希望文章能够帮你解决macos – 如何向其他Cocoa应用程序发出偏好更改的信号?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1010067.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存