Используйте Службы ввода текста , если вы используете 10,5 или выше. Он основан на CoreFoundation, так что не волнуйтесь, он внутри фреймворка Carbon. Если вам нужна поддержка версии 10.4 или старше, вам необходимо использовать Keyboard Layout Services . Я знаю только первое, поэтому позвольте мне объяснить это.
Вы используете
CFArrayRef sourceList= TISCreateInputSourceList (NULL,false);
для получения массива TISInputSourceRef
, соответствующего всем включенным типам клавиатуры. Затем вы можете использовать другие функции для их изучения. Чтобы выбрать / отменить выбор, вы можете использовать TISSelectInputSource
и TISDeselectInputSource
и т. Д.
Не забудьте CFRelease
массив, который вы получили, хотя даже в среде сборки мусора, потому что сборка мусора объектов CF не является автоматической!