在使用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;
}
网友评论