首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IOS8.3中的返回nil

IOS8.3中的返回nil
EN

Stack Overflow用户
提问于 2015-06-28 14:10:33
回答 3查看 934关注 0票数 1

我想要检测键盘的当前输入模式,并更改与其相关的文本方向(如果是阿拉伯语,则为rtl;如果是英语,则为ltr )。

在以下代码中:

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];
    [[NSNotificationCenter defaultCenter]
        addObserver:self
           selector:@selector(changeInputMode:)
               name:UITextInputCurrentInputModeDidChangeNotification
             object:nil
    ];
 }

-(void)changeInputMode:(NSNotification *)notification
{
    UITextInputMode *thisInputMode = [notification object];
    NSLog(@"inputMethod=%@",thisInputMode);
}

thisInputModenil

如果我使用下面的代码:

代码语言:javascript
复制
    NSString *inputMethod = [[UITextInputMode currentInputMode] primaryLanguage];
    NSLog(@"inputMethod=%@",inputMethod);

它工作得很好,可以检测当前的输入模式,但不推荐使用currentInputMode

为什么[notification object]返回nil

EN

回答 3

Stack Overflow用户

发布于 2015-06-28 15:30:40

使用activeInputModes属性而不是currentInputMode

来自文档

数组中的每个元素都是UITextInputMode的一个实例。如果文本输入系统未设置此类实例,则返回空数组。

票数 0
EN

Stack Overflow用户

发布于 2016-02-20 09:07:24

请查看this question and answers

它有一些新解决方案来获得当前的键盘输入模式,并且不使用过时的currentInputMode方法。

票数 0
EN

Stack Overflow用户

发布于 2018-09-21 21:05:02

textInputMode不是通知对象的一部分。通知会告诉您语言已更改。

要获取实际信息,您需要从changeInputMode:方法中调用第一个响应器(即textField)上的textInputMode.primaryLanguage

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31096696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档