我试图将Uitextfield的输入限制为仅字母数字字符,即。字母和数字。我在堆栈Overflow上找到了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方法。
我不确定如何正确实施。感谢您的帮助。
我刚刚意识到无需调用布尔方法。您所要做的就是将方法实现代码添加到视图控制器中,并且您可以使用。