您的位置:首页 > 其它

IM聊天的键盘中文输入点击删除键变成英文bug

2017-05-25 11:56 253 查看
问题:

IM聊天中,中文输入的键盘点击删除键后变成英文bug

因为键盘删除判断删除@好友整体删除,以及删除表情都需要特殊判断

解决方法:

#pragma mark -- 修改删除键盘的bug
- (BOOL)shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
{
//输入回车 发送消息
if ([text isEqualToString:@"\n"]) {
[self didPressSend:nil];
return NO;
}
//删除
if ([text isEqualToString:@""] && range.length == 1 ) {
//非选择删除
NSRange range = [self delRangeForEmoticon];
if (range.length == 1) {
//删的不是表情,可能是@
NIMInputAtItem *item = [self delRangeForAt];
if (item) {
range = item.range;
[self.toolBar deleteText:range];
return NO;
}
//判断删除单个字母,中文变成字符串
else{
return YES;
}
}
//删除表情
else{
return NO;
[self.toolBar deleteText:range];
}
}
NSString *str = [self.toolBar.contentText stringByAppendingString:text];
if (str.length > self.maxTextLength) {
return NO;
}
return YES;
}


- (void)deleteText:(NSRange)range
{
NSString *text = self.contentText;
if (range.location + range.length <= [text length]
&& range.location != NSNotFound && range.length != 0)
{
NSString *newText = [text stringByReplacingCharactersInRange:range withString:@""];
NSRange newSelectRange = NSMakeRange(range.location, 0);
[self.inputTextView setText:newText];
self.inputTextView.selectedRange = newSelectRange;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: