0

我试图将 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);
    
    }
    

然后我尝试在 viewDidLoad 中调用 BOOL 方法,开始输入这个(_emailEntry 是我在视图控制器的头文件中创建的 UITextField 属性):

[_emailEntry should

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

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

4

1 回答 1

1

我刚刚意识到没有必要调用 BOOL 方法。您所要做的就是将方法实现代码添加到您的视图控制器中,您就可以开始了。

于 2014-03-08T04:50:30.980 回答