Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone UITextView检测已删除的字符_Iphone_Objective C_Ios_Xcode_Uitextview - Fatal编程技术网

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你能给出解决方案吗?你实施了吗?