2016-08-31 11 views
1

私はカスタムキーボードを作っています。キーボードの削除キーは、シングルタップで正常に動作します。しかし、それは長いプレスでは機能しません。ユーザーが削除ボタンを押したままにすると、キーボードは標準のiosキーボードのように継続的に削除されるように、削除キーを長押しします。私は即時にカスタムキーボードの長押しのキーを削除

https://stackoverflow.com/a/30711421/6077720https://stackoverflow.com/a/25633313/6077720https://stackoverflow.com/a/26234876/6077720 like-、StackOverflowの上のソリューションのカップルと呼ばしかし、それのどれも私のために働いていません。私もこのコードを試した:

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() 

    } 
} 

しかし、このコードを書いた後、私のキーボードは表示されません。誰でも助けてくれますか?

+0

の下にこのコードを試してみてください? – Lion

+0

@KetanParmarはいこの削除ボタンのコードを追加した後、キーボードはまったく表示されません。それ以前は正常に動作しました – PersianBlue

答えて

2

は、あなたがあなたのキーボードを表示することができません意味ですか

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() 
} 
+0

何のタイマーを使用しますか? – PersianBlue

+0

タイマーを使用してテキストを早く削除する – aatalyk

+0

あなたの言ったように疲れていますが、キーボードはまだロードされていません – PersianBlue

0
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() 
} 
+0

このコードが何をしているのか、なぜそれが問題を解決するのか説明して、 – JJJ

関連する問題