изменить исходный язык ввода программно OSx - PullRequest
1 голос
/ 20 мая 2011

У меня проблема с изменением текстового поля источника языка ввода с помощью кодов!
Все, что я хочу, это изменить язык клавиатуры на конкретный язык, когда я когда-либо введите текстовое поле .

Я уже искал здесь и только нашел небольшое руководство для Iphone, но я работаю над OSx App .

Спасибо, ребята, помогаете мне снова!

EDIT:
Что ж ! новые подходы: Если я поменяю системные настройки на соответствующий язык, то большинство проблем решится! Форматирование даты становится истинным, и если я использую этот фрагмент кода, я могу получить правильное имя языка (прежде чем я только что получил en ):

NSLocale * locale = [NSLocale currentLocale];        
NSString * localLanguage = [locale objectForKey:NSLocaleLanguageCode] ;
NSLog (@"Language : %@", localLanguage);    

НО, я хочу изменить язык ввода с клавиатуры без изменения всей системы. На самом деле, я хочу изменить язык службы ввода текста на другой установленный язык (у меня есть 2), когда я вхожу в специальное текстовое поле ! (это понятно?)

1 Ответ

3 голосов
/ 24 июня 2011

Ну, я ответил на свой собственный вопрос ОПЯТЬ!

для тех, кто может посетить этот вопрос:
, чтобы добраться до пользователя язык клавиатуры Источники ввода Вы должны следовать этой инструкции:

  1. TIS (Служба ввода текста) относится к Carbon framework .Итак, прежде всего вам нужно импортировать carbon.h в файл вашей реализации:

    #import <Carbon/Carbon.h>

  2. Добавить углеродные рамки для вашего каркасного ресурса.Для этого вам нужно перейти к Цель приложения Mac OSx -> Связанные фреймворки и библиотеки -> добавить карбоновая рама.

  3. , чтобы изменить источник ввода с клавиатуры,Вы можете использовать, например, controlTextDidBeginEditing делегат, чтобы определить выбор пользователя textfield. Затем вы можете выбрать нужный язык из установленных языковых источников.Например, у меня установлено два языка: en и fa , поэтому у меня есть две раскладки клавиатуры на языковой панели.Затем вы можете выбрать язык, выбрав его индекс.

  4. , чтобы найти нужный языковой индекс, вы можете использовать это:
    NSArray *langs=[NSLocale preferredLanguages];
    langs включены языки, к которым вы можете обратиться по его индексам.

  5. Теперь пришло время программно изменить источник ввода текста, используя следующие коды:
    NSArray*langsArray=(NSArray*)TISCreateInputSourceList(NULL,FALSE); //make a list of installed languages<br> TISInputSourceRef faSource=(TISInputSourceRef)[langsArray objectAtIndex:1]; //my second language is farsi (persian)<br> TISSelectInputSource(faSource); // now second language selected for keyboard input resource

Надеюсь, это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...