我创建了一个UITextView
允许在用户键入时进行动态标记的@
.
是否可以检测到已@
删除,以停止我创建的特定标记过程?如果是这样,我该怎么做?UITextView
没有这样的委托方法。
我创建了一个UITextView
允许在用户键入时进行动态标记的@
.
是否可以检测到已@
删除,以停止我创建的特定标记过程?如果是这样,我该怎么做?UITextView
没有这样的委托方法。
我会用
- (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
这应该有效。
你可以得到将被使用替换的原始文本:
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");
}
您将检测用户是否删除了特定字符串。
希望有帮助!