Iphone UITextView检测已删除的字符
我创建了一个Iphone UITextView检测已删除的字符,iphone,objective-c,ios,xcode,uitextview,Iphone,Objective C,Ios,Xcode,Uitextview,我创建了一个UITextView,当用户键入@时,它允许动态标记 是否可以检测到已删除的@,以停止我创建的特定标记过程?如果是,我该怎么做UITextView没有这样的委托方法。我会使用 -(BOOL)文本视图:(UITextView*)文本视图应更改文本范围:(NSRange)范围替换文本:(NSString*)文本 然后创建一个NSString,其中存储添加到UITextView的最后一个字符。在上述方法中,添加以下代码段 if ([text isEqualToString:@""] &am
UITextView
,当用户键入@
时,它允许动态标记
是否可以检测到已删除的@
,以停止我创建的特定标记过程?如果是,我该怎么做UITextView
没有这样的委托方法。我会使用
-(BOOL)文本视图:(UITextView*)文本视图应更改文本范围:(NSRange)范围替换文本:(NSString*)文本
然后创建一个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");
}
您将检测用户是否删除特定字符串
希望对你有帮助 当文本等于
“shouldChangeTextInRange
中的”时,它是否一定是一个退格?这种方式仅假设用户输入了@
,然后将其删除。如果用户输入了@Hello
并删除了整个内容,该怎么办?最后录制的字符串仍然是o
。如果用户输入@Hello
,然后单击手动更改光标并删除@
,会发生什么情况?最后一个字符仍然是“代码> o>代码”,但是中间的一个字符已经被删除了,你能详细说明一下“动态标记”吗?你是如何实现的?@darksky你能给出解决方案吗?你实施了吗?