iOS Swift 仅启用键盘中的退格键

iOS Swift Enable Only Backspace Key in Keyboard

在我的应用程序中,我对某些 textView 设置了文本限制。例如,在 description 中,我的文本限制为 10000。当 textView 包含超过 10000 个字符时,我只需要在键盘中启用退格键并需要禁用键盘中的所有其他键,是否可能。这是我试过的代码:

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText string: String) -> Bool {
    if(textView == DescriptionText)
    {
      if range.length + range.location > (self.DescriptionText.text?.characters.count)!
      {
            return false
      }
      else if range.location == 0 && string == " "
      {
            return false
      }
      let NewLength = (self.DescriptionText.text?.characters.count)! - range.length
      return NewLength <= 9999
      }
      else
      {
          if range.location == 0 && string == " "
          {
                return false
          }
          return true
      }
    }

在 textfieldShouldChange 中添加以下内容:

if(range.length + range.location > textField.text.length)
    {
        return NO;
    }

    NSUInteger newLength = [textField.text length] + [string length] - range.length;

    return newLength <= 10000;

我不确定您到底想要什么,但是您可以使用以下行防止用户在 textView 中键入超过 10000 个字符。

func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText string: String) -> Bool {

    let textString = (textView.text! as NSString).replacingCharacters(in: range, with: string)

    if textView == self.DescriptionText && string.characters.count > 0 {
        return textString.characters.count <= 10000 
    }

    return true
}