我创建了一个UITextView
,允许在用户输入@
时进行动态标记。
是否可以检测到@
被删除,以便停止我创建的特定标记过程?如果是这样,我该怎么做? UITextView
没有这样的委托方法。
答案 0 :(得分:1)
我会用
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
然后创建一个NSString
,您可以在其中存储添加到UITextView
的最后一个字符。在上述方法中,添加以下代码段。
if ([text isEqualToString:@""] && [lastRecordedString isEqualToString@"@"]) {
//do whatever you want to do when an @ is deleted
}
lastRecordedString = [textView.text substringFromIndex:[string length]-1];
编辑:请参阅上面编辑的代码。现在lastRecordedString
是删除字符后UITextView
中的最后一个字符。这应该有用。
答案 1 :(得分:1)
您可以使用以下内容获取原始文本:
NSString *originalText = [textView.text substringWithRange:range];
中的
- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
方法
然后,做
if ([originalText rangeOfString:@"tag"].length > 0) {
NSLog(@"delete tag string");
}
您将检测用户是否删除了特定字符串。
希望有帮助!