有任何功能可以知道我在Swit的UITextView中单击了键盘删除按钮

时间:2018-01-10 09:15:51

标签: ios swift uitextview

作为我的问题标题,我想知道用户点击删除按钮,如下图所示 谢谢。

\n

image here.

2 个答案:

答案 0 :(得分:2)

UITextField符合UITextInput协议,该协议继承自UIKeyInput协议。 UIKeyInput协议具有func deleteBackward()功能,当用户按下键盘上的删除按钮时会调用该功能。

创建一个继承自UITextField的自定义子类,并在该函数内完成您的工作。可以通过自定义委托或其他方式通知您的事件处理程序。

class YourCustomTextField: UITextField {

    override func deleteBackward() {
        super.deleteBackward()
        // do your work here
    }

}

请记得致电super.deleteBackward(),以便在用户点按删除按钮时删除单个字符或所选字符范围。如果你没有打电话,当用户点击删除按钮时,文字就不会改变。

答案 1 :(得分:1)

比较替换后的textField和结果字符串的字符数

var txtBeforeUpdate:NSString = textField.text as NSString!

var txtAfterUpdate = txtAfterUpdate.replacingCharacters(in: range,     with: string) as NSString

也是最好的方式:

let  char = string.cString(using: String.Encoding.utf8)!
let isBackSpace = strcmp(char, "\\b")

if (isBackSpace == -92) {
     print("Backspace was pressed")
}