在textview中删除特性文字的单词

我正在实施类似Facebook的提及。 用户可以将他们的文本消息input到文本视图中,并提及用户名。 用户名将使用NSAttributedString高亮显示。

当用户想删除文本视图上的文本时,如果文本是提及名称的一部分,我想要删除整个提及的名称。 它不应该影响textview上的其他文字和其他提及的名称。

我正在尝试检测用户的变化

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 

但我似乎无法find一种方法来确定当前replacementText的归档string,并将其删除,而无需更改文本的其他部分。

谢谢您的帮助。

也许你正在寻找这样的东西?

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string{ return [self removeUsernameText:textField.text withUsername:@"#John"]; } - (BOOL)removeUsernameText:(NSString *)text withUsername:(NSString *)username{ if([text containsString:username]){ NSMutableString *string = [[NSMutableString alloc] init]; [string replaceCharactersInRange:[text rangeOfString:username] withString:@""]; _textField.text = string; return YES; }else{ return NO; } 

}