在布尔方法方面遇到麻烦



我试图将Uitextfield的输入限制为仅字母数字字符,即。字母和数字。我在堆栈Overflow上找到了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);
    }
    

然后,我尝试通过键入此输入来调用viewdidload中的bool方法(_emailentry是我在视图控制器的标题文件中创建的uitextfield属性):

[_emailEntry should

但Xcode甚至没有显示我们的shouldChangeCharactersInRange方法的选项,这使我认为我可能会错误地调用Bool方法。

我不确定如何正确实施。感谢您的帮助。

我刚刚意识到无需调用布尔方法。您所要做的就是将方法实现代码添加到视图控制器中,并且您可以使用。

最新更新