-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text{
if ([text isEqualToString:@""]) {
NSLog(@"删除%@",textView.text);
return NO;
}else{
NSLog(@"---%@",text);
NSLog(@"%@",textView.text);
}
return YES;
}
/**
- 光标位置输入
- @param emoji 要输入的内容emoji和字符
*/
- (void)insertStringWithGuangBiaotext:(UITextView *)textView emoji:(NSString )emoji {
NSRange range = textView.selectedRange;
NSLog(@"%zd-光标位置输入-%zd",range.length,range.location);
NSUInteger location = textView.selectedRange.location;
NSString * textStr = textView.text;
NSString resultStr = [NSString stringWithFormat:@"%@%@%@",[textStr substringToIndex:location],emoji,[textStr substringFromIndex:location]];
textView.text = resultStr;
range.location = range.location + [emoji length];
NSLog(@"%zd=%zd+%zd",range.location,range.location,[emoji length]);
textView.selectedRange = NSMakeRange(range.location,0);
}
/
- 光标位置删除
*/
-
(void)deleteString:(UITextView *)textView {
NSRange range = textView.selectedRange;
NSLog(@"%zd-表情删除-%zd",range.length,range.location);
if (textView.text.length > 0) {
NSUInteger location = textView.selectedRange.location;
NSString *head = [textView.text substringToIndex:location];
if (range.length ==0) {}else{ NSLog(@"文字为全选"); textView.text =@""; } if (location > 0) { // NSUInteger location = self.inputView.toolBar.textView.selectedRange.location; NSMutableString *str = [NSMutableString stringWithFormat:@"%@",textView.text]; [self lastRange:head]; NSLog(@"%zd===%zd",[self lastRange:head].location,[self lastRange:head].length); NSLog(@"%@",str); [str deleteCharactersInRange:[self lastRange:head]]; NSLog(@"%@",str); textView.text = str; textView.selectedRange = NSMakeRange([self lastRange:head].location,0); } else { textView.selectedRange = NSMakeRange(0,0); }
}
}
/**
- 计算选中的最后一个是字符还是表情所占长度
- @param str 要计算的字符串
- @return 返回一个 NSRange
*/
- (NSRange)lastRange:(NSString *)str {
NSRange lastRange = [str rangeOfComposedCharacterSequenceAtIndex:str.length-1];
return lastRange;
}
网友评论