向后删除() Swift 3

Deletebackward() Swift 3

DeleteBackward()只删除一个字符,有什么办法可以一直向后删除吗?

我正在使用表情符号键盘,我有一个删除表情符号。我检测到表情符号是删除表情符号,我调用

if emoticon.isDelete{

        deleteBackward()
        return
    }

更新:

Steven 的解决方案适用于按钮,但不适用于我的 UITextView。将尝试找出原因。我试过在 ViewWillAppear 和 ViewDidLoad 中使用 addGestureRecognizer。

这应该可以帮助您入门,没有测试但应该可以解决问题。

fileprivate var timer = Timer()
fileprivate var textField = UITextField() //change to your field

override func viewDidLoad() {
    super.viewDidLoad()

    let longPress = UILongPressGestureRecognizer(target: self, action: #selector(longPress(_:)))
    textField.addGestureRecognizer(longPress)
}


func longPress(_ guesture: UILongPressGestureRecognizer) {
    if guesture.state == UIGestureRecognizerState.began {
        longPressBegun(guesture)
    } else if guesture.state == UIGestureRecognizerState.changed {
        //longPressStateChanged(guesture)
    } else if guesture.state == UIGestureRecognizerState.ended {
        longPressEnded()
    } else if guesture.state == UIGestureRecognizerState.cancelled {
        longPressCancelled()
    }
}

func longPressBegun(_ guesture: UILongPressGestureRecognizer) {
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(repeatAction), userInfo: nil, repeats: true)
}

func longPressEnded() {
    timer.invalidate()
}

func longPressCancelled() {
    timer.invalidate()
}

func repeatAction() {
    deleteBackward()
}