如果您尝试通过 ObjC 桥读取/设置 OSX 输入语言,请编写如下代码段:
(function () {
'use strict';
ObjC.import('Carbon');
ObjC.import('stdio');
var sourceList = $.TISCreateInputSourceList(null, false);
var current_source = $.TISCopyCurrentKeyboardInputSource();
var cfs = $.TISGetInputSourceProperty(current_source, $.kTISPropertyInputSourceID);
var cfn = $.TISGetInputSourceProperty(current_source, $.kTISPropertyLocalizedName)
var sourceCount = $.CFArrayGetCount(sourceList)
return $.CFArrayGetValueAtIndex(sourceList, 0)
})();
我们很快就会得到 CF 类型的 obj 引用返回值。在 ObjC 本身中,这些可以强制转换为 NS 值。知道如何在 JavaScript for Applications 中实现这一点吗?
(我正在获取 CF 对象引用返回值,但我没有成功从中提取字符串或其他原始值)