有什么方法可以检测OS X下的系统语言更改事件?

我试图在developer.apple.com上搜索,但没有结果。

我正在寻找C++ / Obj-C上的解决方案。

最佳答案

如果您使用的是Objective-C / Swift,则可以使用NSDistributedNotificationCenter监视语言更改通知:

// You are not required to register self -- this can be any object, and the selector name can be anything taking one argument.
[[NSDistributedNotificationCenter defaultCenter] addObserver:self selector:@selector(languageChanged:) name:@"AppleLanguagePreferencesChangedNotification" object:nil];

您可以根据需要命名languageChanged:,只要该方法采用NSNotification对象即可:
- (void)languageChanged:(NSNotification *)notification {
    // New preferred language.
    NSString *language = [[NSLocale preferredLanguages] firstObject];
}

查看 NSDistributedNotificationCenter docs了解更多信息。

关于c++ - 检测系统语言更改OS X,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41246215/

10-12 20:50