我在通过代码更改文本字段输入语言源时遇到问题!
所有我想要的是改变了键盘语言时,我曾经向特定的语言输入一个文本框。
我已经在这里搜索过,刚刚找到了一些关于 Iphone 的小指南,但我正在开发OSx App。
再次感谢帮助我的各位!
编辑:
好吧!新方法:如果我将系统首选项更改为适当的语言,那么大部分问题都解决了!日期格式化程序变为真,如果我使用此代码片段,我可以获得正确的语言名称(在我刚刚获得en之前):
NSLocale * locale = [NSLocale currentLocale];
NSString * localLanguage = [locale objectForKey:NSLocaleLanguageCode] ;
NSLog (@"Language : %@", localLanguage);
Run Code Online (Sandbox Code Playgroud)
但是,我想在不更改整个系统首选项的情况下更改键盘输入语言。事实上,当我进入一个特殊的文本字段时,我想将文本输入服务语言更改为其他已安装的语言(我有 2 个)!( 清楚吗 ? )
好吧,我再次回答了我自己的问题!
谁可能会访问此问题:
要获得用户的键盘语言输入源,您必须遵循以下说明:
TIS(文本输入服务)与Carbon 框架有关。因此,首先您必须将carbon.h导入到您的实现文件中:
#import <Carbon/Carbon.h>
将碳框架添加到您的框架资源中。为此,您必须导航到Mac OSx 应用程序目标 -> 链接框架和库 -> 添加碳框架工作。
要更改键盘输入源,您可以使用例如controlTextDidBeginEditing委托来检测用户的textfield选择。然后您可以从已安装的语言源中选择正确的语言。例如,我安装了两种语言,en和fa,所以我在语言栏中有 2 个键盘布局。然后您可以通过选择它的索引来选择语言。
要找到您想要的语言索引,您可以使用:
NSArray *langs=[NSLocale preferredLanguages];
langs包含在您可以通过它的索引访问的语言中。
现在,是时候使用以下代码以编程方式更改文本输入源了:
NSArray*langsArray=(NSArray*)TISCreateInputSourceList(NULL,FALSE); //make a list of installed languages
TISInputSourceRef faSource=(TISInputSourceRef)[langsArray objectAtIndex:1]; //my second language is farsi (persian)
TISSelectInputSource(faSource); // now second language selected for keyboard input resource
希望对你有帮助。
| 归档时间: |
|
| 查看次数: |
5355 次 |
| 最近记录: |