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

时间:2017-07-03 06:23:20

标签: ios swift3 uitextview ios-keyboard-extension

在我的应用中,我有一些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
      }
    }

2 个答案:

答案 0 :(得分:1)

在textfieldShouldChange中添加以下内容:

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

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

    return newLength <= 10000;

答案 1 :(得分:-1)

我不确定你想要什么,但你可以阻止用户使用下面的行在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
}