遇到BOOL方法问题

时间:2014-03-08 04:46:15

标签: ios objective-c uitextfield boolean nscharacterset

我试图将UITextField的输入限制为只有字母数字字符,即。字母和数字。我在堆栈溢出时找到了一个BOOL方法实现:https://stackoverflow.com/a/16147160/3344977

所以这是我在阅读答案后对代码所做的事情:

  1. 我将此属性添加到主文件的标题中:

    @property (nonatomic, strong) NSCharacterSet *charactersToBlock;
    
  2. 将此添加到我的viewDidLoad:

    self.charactersToBlock = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
    
  3. 添加了方法实现:

    - (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters
    {
    
    return ([characters rangeOfCharacterFromSet:self.charactersToBlock].location == NSNotFound);
    
    }
    
  4. 然后我尝试通过开始键入this来调用viewDidLoad中的BOOL方法(_emailEntry是我在视图控制器的头文件中创建的UITextField属性):

    [_emailEntry should
    

    但xcode甚至没有显示shouldChangeCharactersInRange方法的选项,这让我觉得我可能错误地调用了BOOL方法。

    我不确定如何正确实现这一点。谢谢你的帮助。

1 个答案:

答案 0 :(得分:1)

我刚才意识到不需要调用BOOL方法。您只需将方法实现代码添加到视图控制器中,就可以了。