ios - 如何强制用户停止输入 UITextField 但允许退格

标签 ios objective-c iphone uitextfield

我有一个 UITextField我的用户用来输入标签。我需要能够在一个非常特定的时间 - 阻止我的用户继续输入默认情况下使用 UITextFields 呈现的键盘。但是,我仍然需要允许我的用户点击 iOS 键盘上的退格按钮,以便他们可以尝试输入合适的单词。

一些非常重要的事情要记住:

  • UITextField由于字符数量最多,不应该被卡住,因为我正在根据我为标签
  • 添加到屏幕的 UIViews 确定何时应该卡住 textField
  • 用户仍然应该能够退格
  • 不应关闭键盘
  • 不应禁用 textField

  • 我试过设置textField.enabled = NO ,但再一次,我仍然需要能够使用 textField,我只需要卡住输入并强制用户退格,不允许将 andy 字符添加到 textField .

    最佳答案

    你可以试试下面的东西

    - (BOOL)textField:(UITextField*)textField shouldChangeCharactersInRange:(NSRange)range
    replacementString: (NSString*) string {
    
      NSString *text = [textField.text stringByReplacingCharactersInRange:range withString: string];
    
      if([text length] > MAX_LENGTH)
           return NO;
      else 
           return YES;
    
     }
    

    编辑1:
    要调用此委托(delegate)方法,请设置文本字段的委托(delegate)。
    在这种情况下,您可以将其用作
    yourTextField.delegate = self;
    

    在您的 viewWillAppear/viewDidAppear 中。

    关于ios - 如何强制用户停止输入 UITextField 但允许退格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34505583/

    相关文章:

    ios - 相机如何跟踪两件事? cocos2d

    python - 使用 Twilio 可编程语音 SDK 的通话质量差

    iPhone sdk如何在UITableView中添加带有第一个和最后一个数组计数的UIButton?

    ios - 通过添加 subview 将数据传递到自定义 UITableViewCell

    iphone - 是否可以在没有 Storyboard的情况下在 Interface Builder 中创建原型(prototype)单元?

    ios - 确定网络可用性

    ios - 是否可以在 iPhone 中使用 AVAudioPlayer 更改音频播放速度?

    iphone - iPhone:4分钟后,循环音频停止

    ios - 非消耗品和动态应用内购买

    ios - 标签栏问题: -[UILayoutContainerView hash]: message sent to deallocated instance