Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa:学习当前选定的键盘布局/输入语言_Cocoa_Layout_Input - Fatal编程技术网

Cocoa:学习当前选定的键盘布局/输入语言

Cocoa:学习当前选定的键盘布局/输入语言,cocoa,layout,input,Cocoa,Layout,Input,如何学习当前选定的键盘布局/输入语言 我和NSInputManager一起玩,但没能取得任何成绩 [NSInputManager currentInputManager] 返回(null)(以%@报告),因此 这将是最好的,我只是得到一个两个字母的缩写的语言使用,如EN或FR,但键盘布局名称显示在菜单栏也将工作 有什么想法吗?谢谢 编辑:我还发现一个AppleSelectedInputSourcesChangedNotification被发布到 [NSDistributedNotificati

如何学习当前选定的键盘布局/输入语言

我和NSInputManager一起玩,但没能取得任何成绩

[NSInputManager currentInputManager]
返回(null)(以%@报告),因此

这将是最好的,我只是得到一个两个字母的缩写的语言使用,如EN或FR,但键盘布局名称显示在菜单栏也将工作

有什么想法吗?谢谢

编辑:我还发现一个AppleSelectedInputSourcesChangedNotification被发布到

[NSDistributedNotificationCenter defaultCenter]

但是,当用户更改布局时,此通知中不会“附加”有关新选择布局的信息。

键盘布局到语言组合通常是一对多,因此,虽然您可以获得当前选定键盘布局(或更一般地说,输入源)的本地化名称,源代码可用于以多种语言键入文本。你为什么要这样做

也就是说,您可以使用获取有关当前文本输入源的信息。例如:

  TISInputSourceRef source = TISCopyCurrentKeyboardInputSource();
  NSLog(@"languages: %@",
        TISGetInputSourceProperty(source, kTISPropertyInputSourceLanguages));
  NSLog(@"localized name: %@",
        TISGetInputSourceProperty(source, kTISPropertyLocalizedName));
给我:

2009-04-23 14:30:17.581 sample[30688:10b] languages: (
    en,
    ca,
    da,
    de,
    es,
    eu,
    fr,
    ga,
    gl,
    gv,
    id,
    it,
    kw,
    ms,
    nb,
    nl,
    nn,
    om,
    pt,
    so,
    sq,
    sv,
    sw
)
2009-04-23 14:30:17.584 sample[30688:10b] localized name: U.S.

我也试着玩这些东西,但没能让它编译。您添加了哪些框架和导入内容?:-)此外,您认为这仅适用于碳纤维吗?
#导入
(或
#包含
也适用,因为碳纤维头具有包含防护装置)。然后,您需要在Xcode中将Carbon框架添加到您的项目中(或者如果您正在编译,则使用
-framework Carbon
)。请注意,虽然这在技术上是“Carbon”和“HIToolbox”,但它是Carbon和Cocoa都可以使用的低级别碳,64位应用程序支持它,并且不会很快消失,所以不要觉得你不能使用它。给出错误:ld:symbol(s)not found for architecture x86\u 64这对我有帮助。非常感谢:)
2009-04-23 14:30:17.581 sample[30688:10b] languages: (
    en,
    ca,
    da,
    de,
    es,
    eu,
    fr,
    ga,
    gl,
    gv,
    id,
    it,
    kw,
    ms,
    nb,
    nl,
    nn,
    om,
    pt,
    so,
    sq,
    sv,
    sw
)
2009-04-23 14:30:17.584 sample[30688:10b] localized name: U.S.