长按快捷键中的一个自定义键盘

我正在制作一个自定义的键盘。 键盘上的删除键适用于单击。 但是长按不起作用。我想对删除键实行长按,这样当用户按住删除键时,键盘会不断的删除,就像标准的ios键盘一样。 我提到了一些Stackoverflow解决scheme,如https://stackoverflow.com/a/26234876/6077720,https://stackoverflow.com/a/25633313/6077720,https://stackoverflow.com/a/六百零七万七千七百二十零分之三千零七十一万一千四百二十一

但是没有一个对我有用。 我也试过这个代码:

override func viewDidLoad() { super.viewDidLoad() textDocument = self.textDocumentProxy var longPress = UILongPressGestureRecognizer(target: self, action: #selector(self.longPress)) self.deleteKeyPressed.addGestureRecognizer(longPress) } func longPress(gesture: UILongPressGestureRecognizer) { if gesture.state == .Ended { print("Long Press") self.textDocumentProxy.deleteBackward() } } 

但是编写这段代码之后,我的键盘就不会出现。 谁能帮帮我吗?

试试下面的代码

 var timer: NSTimer? override func viewDidLoad() { super.viewDidLoad() textDocument = self.textDocumentProxy var longPressRecognizer = UILongPressGestureRecognizer(target: self, action: #selector(KeyboardViewController.longPressHandler(_:))) eraseButton.addGestureRecognizer(longPressRecognizer) } func longPressHandler(gesture: UILongPressGestureRecognizer) { if gesture.state == .Began { timer = NSTimer.scheduledTimerWithTimeInterval(0.1, target: self, selector: #selector(KeyboardViewController.handleTimer(_:)), userInfo: nil, repeats: true) } else if gesture.state == .Ended || gesture.state == .Cancelled { timer?.invalidate() timer = nil } } func handleTimer(timer: NSTimer) { self.deleteText() } 
  override func viewDidLoad() { super.viewDidLoad() let longPress = UILongPressGestureRecognizer(target: self, action: #selector(KBViewController.handleLongPress(_:))) longPress.minimumPressDuration = 0.5 longPress.numberOfTouchesRequired = 1 longPress.allowableMovement = 0.5 row3B11.addGestureRecognizer(longPress) 

}

  func handleLongPress(_ gestureRecognizer: UIGestureRecognizer) { textDocumentProxy.deleteBackward() }