我试图将 UITextField 的输入限制为仅字母数字字符,即。字母和数字。我在堆栈溢出时发现了一个 BOOL 方法实现:https://stackoverflow.com/a/16147160/3344977
所以这是我在阅读该答案后对我的代码所做的:
我将此属性添加到我的主文件的标题中:
@property (nonatomic, strong) NSCharacterSet *charactersToBlock;
将此添加到我的 viewDidLoad:
self.charactersToBlock = [[NSCharacterSet alphanumericCharacterSet] invertedSet];
添加方法实现:
- (BOOL)textField:(UITextField *)field shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)characters { return ([characters rangeOfCharacterFromSet:self.charactersToBlock].location == NSNotFound); }
然后我尝试通过开始键入以下内容来调用 viewDidLoad 中的 BOOL 方法(_emailEntry 是我在 View Controller 的头文件中创建的 UITextField 属性):
[_emailEntry should
但是 xcode 甚至没有显示我们的 shouldChangeCharactersInRange
方法的选项,这让我觉得我可能错误地调用了 BOOL 方法。
我不确定如何正确实现。感谢您的帮助。
最佳答案
我刚刚意识到没有必要调用BOOL方法。您所要做的就是将方法实现代码添加到 View Controller 中,然后就可以开始了。
关于ios - BOOL 方法有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22265162/