关于textField的textFieldDidChange的一点应用

在使用UITextField这个控件来实现实时搜索,当输入中文的时候,在输入拼音的过程中也会触发UIControlEventEditingChanged事件,而这非我想要的结果,我想要的效果是,在打字的过程中不触发UIControlEventEditingChanged事件,在打字结束后触发UIControlEventEditingChanged事件,查阅资料得知,在中文输入法的状态下可以获取primaryLanguage属性,这样我们就可以来选择性的触发UIControlEventEditingChanged事件

NSString *langugeType = [[searchTextField textInputMode] primaryLanguage];

if ([langugeType isEqualToString:@"zh-Hans"])//中文输入{

UITextRange *selectedRange = [searchTextField markedTextRange];//选中部分

//获取高亮部分

UITextPosition *position = [searchTextField positionFromPosition:selectedRange.start offset:0];

if (!position)//无高亮

{

_wordHighlight = NO;

//去请求数据

[self searchBookWithKeyWord:searchTextField.text];

_currentKeyWord = searchTextField.text;

}else//有高亮

{

_wordHighlight = YES;

}

}else//非中文输入

{

_wordHighlight = NO;

//去请求数据

[self searchBookWithKeyWord:searchTextField.text];

_currentKeyWord = searchTextField.text;

}

你可能感兴趣的:(关于textField的textFieldDidChange的一点应用)