Обнаружение текущего входного языка iPhone

Не забывайте об именованной замене:

def so_question_uri_namedsub(q_num):
    return "%(domain)s%(questions)s/%(q_num)d" % locals()
18
задан 12 September 2009 в 11:10
поделиться

2 ответа

Вы можете добавить наблюдателя в центр уведомлений по умолчанию:

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(inputModeDidChange:)
                                             name:@"UIKeyboardCurrentInputModeDidChangeNotification"
                                           object:nil];

Этот метод печатает текущий выбранный язык ввода (например, «en_US» или «de_DE» ):

- (void)inputModeDidChange:(NSNotification*)notification
{
    id obj = [notification object];
    if ([obj respondsToSelector:@selector(inputModeLastUsedPreference)]) {
        id mode = [obj performSelector:@selector(inputModeLastUsedPreference)];
        NSLog(@"mode: %@", mode);
    }
}

НО: Все вышеперечисленное не задокументировано, и вы не должны использовать его в коде доставки!

8
ответ дан 30 November 2019 в 06:01
поделиться

Из справочной библиотеки Apple - « Получение текущего языка и локали »:

NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString* preferredLang = [languages objectAtIndex:0];
5
ответ дан 30 November 2019 в 06:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: