首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >识别UITextField或UITextView中已删除的字符

识别UITextField或UITextView中已删除的字符
EN

Stack Overflow用户
提问于 2012-06-15 18:19:51
回答 5查看 2.3K关注 0票数 2

我需要识别被删除的字符。例如,当我删除一个字符"@“时,我需要执行一些操作。有什么简单的方法可以做到这一点吗?或者,我是否需要将最近键入的字符保存在一个变量中,并在shouldChangeCharactersInRange中检查range.length == 0?

提前谢谢。

EN

回答 5

Stack Overflow用户

发布于 2012-06-15 18:50:29

在我看来,应该是这样的:

代码语言:javascript
运行
复制
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *textToChange  = [[textField text] substringWithRange:range];
    NSRange rangeOld = [textToChange rangeOfString:@"@"];
    NSRange rangeNew = [string rangeOfString:@"@"];
    if (rangeOld.location != NSNotFound && rangeNew.location == NSNotFound ) {
        [self userDidRemoveAtSign];
    }
    return YES;
}

说明:是的,当用户删除'@‘符号时,userDidRemoveAtSign是你的自定义方法。此代码驻留在UITextField 委托中。每次用户在UITextField中更改文本、删除、替换或附加字符时,文本字段都会发送此消息

代码语言:javascript
运行
复制
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

委派。在这个方法中,我检查@ sign是否包含在替换文本中,以及它是否包含在替换文本中。

票数 5
EN

Stack Overflow用户

发布于 2012-06-15 18:30:49

是的,正如您所说,您必须将最后一组字符保留在NSString中,然后当文本更改时,将其与新字符串进行比较

票数 1
EN

Stack Overflow用户

发布于 2016-04-14 14:04:39

你可以在swift中这样做,这样你会得到删除的字符

让strDeletedChar = (textView.text as NSString).substringWithRange(范围)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11048819

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档