有谁知道如何检测用户何时在OSX中更改当前输入源?OSX可可输入源检测变化
我可以叫TISCopyCurrentKeyboardInputSource()
找出源ID正在使用的输入是这样的:
TISInputSourceRef isource = TISCopyCurrentKeyboardInputSource();
if (isource == NULL)
{
cerr << "Couldn't get the current input source\n.";
return -1;
}
CFStringRef id = (CFStringRef)TISGetInputSourceProperty(
isource,
kTISPropertyInputSourceID);
CFRelease(isource);
如果我输入源为“德国”,然后ID最终被“融为一体。 apple.keylayout.German“,这大部分是我想要的。不包括:
TISCopyCurrentKeyboardInputSource()
的结果不会改变,一旦我的过程开始了?特别是,我可以在循环中调用TISCopyCurrentKeyboardInputSource()
并切换我的输入源,但TISCopyCurrentKeyboardInputSource()
会一直返回我的进程启动时的输入源。- 我很想在输入源发生更改时收到通知。有没有办法做到这一点?要获得通知或某种事件告诉我输入源已更改?
谢谢!很棒。 – 2014-09-25 17:11:26