我试图将 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 是我在视图控制器的头文件中创建的 UITextField 属性):
[_emailEntry should
但是 xcode 甚至没有显示我们方法的选项,shouldChangeCharactersInRange
这让我觉得我可能错误地调用了 BOOL 方法。
我不确定如何正确实施。谢谢您的帮助。