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

来源:互联网 发布:seo人工伪原创 编辑:程序博客网 时间:2024/05/16 23:45

问题:
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;    }}
阅读全文
0 0
原创粉丝点击