有誰知道如何檢測用戶何時在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