在 UITextField 上禁用快速删除
Posted
技术标签:
【中文标题】在 UITextField 上禁用快速删除【英文标题】:Disable fast delete on UITextField 【发布时间】:2011-09-23 16:34:07 【问题描述】:所以,我有委托方法
- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
运行以检查 textfield
中是否至少包含 1 个字符。
好吧,如果字符数超过 20 个左右,当用户按住删除按钮一两秒钟时,它会删除整个单词,跳过 delegate
检查并一直删除到 0 个字符.
有谁知道如何关闭此“快速删除”功能?
它甚至可以完成,还是有一个我没有看到的体面的解决方法?
我还应该指出,这是用户将在此文本字段中输入的单个单词。
【问题讨论】:
如果用户将几个字母标记为块并将其全部删除或用一个字母更改它,您会怎么做?这就是为什么此方法使用范围而不是单独的字符进行操作的原因。 【参考方案1】:没办法。如果用户将几个字母标记为块并将其整体删除或用一个字母更改它,您会怎么做?这就是为什么此方法使用范围而不是单独的字符进行操作的原因。
【讨论】:
感谢here,我实际上有代码可以处理删除或添加块中的内容。我继续修改我的代码以允许用户删除所有内容。【参考方案2】:代码在
-(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
或
-(BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text
if (![text length]&&range.length&&range.length!=1)
return NO;
【讨论】:
谢谢,这是我的第一个答案以上是关于在 UITextField 上禁用快速删除的主要内容,如果未能解决你的问题,请参考以下文章
如何快速禁用 SkyFloatingLabelTextField 中的复制粘贴功能?