Как получить раскладку клавиатуры в Ma c OS X с помощью C / C ++ - PullRequest
0 голосов
/ 12 июля 2020

Мне нужно получить раскладку клавиатуры, используемую на Ma c OS X. Я нашел старые исправления, но все они примерно такие:

Как изменить Ma c Программная раскладка клавиатуры OS X?

которая больше не работает. Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 13 июля 2020

Если кому-то интересно, я наконец смог получить раскладку клавиатуры со следующим кодом:

#include <Carbon/Carbon.h>
int main() {
    char layout[128];
    memset(layout, '\0', sizeof(layout));
    TISInputSourceRef source = TISCopyCurrentKeyboardInputSource();
    // get input source id - kTISPropertyInputSourceID
    // get layout name - kTISPropertyLocalizedName
    CFStringRef layoutID = TISGetInputSourceProperty(source, kTISPropertyInputSourceID);
    CFStringGetCString(layoutID, layout, sizeof(layout), kCFStringEncodingUTF8);
    printf("%s\n", layout);
    return 0;
}

Скомпилировано с помощью:

g cc -o test2 test2. c -рамка Карбон

0 голосов
/ 12 июля 2020

Я бы попробовал это:

#import <Carbon/Carbon.h>

TISInputSourceRef source = TISCopyCurrentKeyboardInputSource();
NSString *s = (__bridge NSString *)(TISGetInputSourceProperty(source, kTISPropertyInputSourceID));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...