2011-09-23 32 views
2

所以,我有委托方法禁用快速删除的UITextField

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string {

运行检查一个textfield有一个最小它1个字符。

那么,如果字符数超过20个左右,那么当用户按住删除按钮一两秒钟时,它会删除整个单词,跳过delegate检查并一直删除到0个字符。

有谁知道如何关闭这个'快速删除'?

它可以完成,还是有一个体面的解决方法,我没有看到?

我也应该指出这是一个单词,将由用户放在这个文本框中。

+0

什么,你会想这样做,如果用户将迎来几个字母块,并删除它作为一个整体或一个字母改变呢?这就是为什么此方法使用范围但不分隔字符的原因。 –

回答

1

没办法。如果用户将几个字母标为块并将其全部删除或用一个字母进行更改,您会做什么?这就是为什么此方法使用范围但不分隔字符的原因。

+0

我实际上有代码在那里处理删除或添加块中的内容感谢[这里](http://stackoverflow.com/questions/433337/iphone-sdk-set-max-character-length-textfield)。我去提前并更改我的代码以允许用户删除所有内容。 – Justin

0

守则

-(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; 
    } 
+0

谢谢,这是我的第一个答案 – cocoa