您的位置:首页 > 产品设计 > UI/UE

UITextField UITextView对内容字数的限制

2016-07-29 15:53 357 查看
很多时候我们经常会遇到字数的限制。

大部分会选择使用UITextField or UItextView 的didEdit 代理方法来进行操作。

但是这会出现个问题,当我们输入汉字,打拼音的时候,即使我们没有选中汉字,这个代理也会走。

这就导致我们得到的string的内容和当前显示的是有出入的。

下面这个方法,可以在我们有高亮选择的字的时候的判断,但是这个方法不足之处,是emoji表情的处理,不到位。

如果加上emoji表情的处理,会比较麻烦。这里先不描述这个事情了。

[[NSNotificationCenterdefaultCenter]addObserver:self selector:@selector(infoAction)name:UITextFieldTextDidChangeNotification object:nil];

- (void)infoAction{

//    NSString *toBeString = [self.nameTextField.text stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
UITextRange *selectedRange = [self.nameTextField markedTextRange];
UITextPosition *position =  [self.nameTextField positionFromPosition:selectedRange.start offset:0];

// 没有高亮选择的字,则对已输入的文字进行字数统计和限制
if (position)
{
return;

}

self.keyWord = self.nameTextField.text;

__weak typeof(self)WeakSelf = self;

NSMutableDictionary *params = [[NSMutableDictionary alloc] init];

[params setObject:self.keyWord forKey:@"name"];

[YiliaoRequest getDoctor:params finished:^(NSDictionary *data) {

YLLog(@"%@",data);

if ([data[@"ret"] intValue] == 200) {

WeakSelf.soureArr = [SelfInformation mj_objectArrayWithKeyValuesArray:data[@"body"]];
[WeakSelf.tbView reloadData];

}else{

WeakSelf.soureArr = nil;
[WeakSelf.tbView reloadData];
}

}];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: