ios - BOOL 方法有问题

标签 ios objective-c uitextfield boolean nscharacterset

我试图将 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 是我在 View Controller 的头文件中创建的 UITextField 属性):

[_emailEntry should

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

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

最佳答案

我刚刚意识到没有必要调用BOOL方法。您所要做的就是将方法实现代码添加到 View Controller 中,然后就可以开始了。

关于ios - BOOL 方法有问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22265162/

相关文章:

ios - Swift - 背景图像不适合(显示所有图像的一小部分)

objective-c - 当应用程序在 iOS 8 中启动时,如果设备处于横向方向,如何强制纵向方向

iphone - 如何根据 UILabel 中的数字显示文本

objective-c - 为什么不点击UITextField即可打开键盘?

objective-c - UItextField - AlertView 上的 iOS 多行文本字段

ios - 我应该如何使用命令行参数将框架文件拖放到 xcode 项目内的框架文件夹中。(终端)

ios - CC Sprite : setTexture doesn't work when the sprite is rendered using a CCSpriteBatchNode

ios - 关于在 Swift 中采用 Objective-C 协议(protocol)的困惑

objective-c - 未知类型名称 uint32/uint16

objective-c - 这行代码的目的是什么?