向后删除() 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()
}
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()
}