2017-07-20 8 views
0

私は問題があり、解決策を見つけることができません。現時点では、VCのviewDidLoad()にタップジェスチャ認識機能があり、タップが画面上のレコーダーであればキーボードは消えます。問題は、ユーザーがテキストフィールドの入力を完了し、「アカウントの登録」ボタンを押しても、それはタップとして認識され、キーボードのみが削除されますが、ボタンはタップに応答せず、セレクタ機能は呼び出されません。 ボタンを画面上のキーボードでタップしてすぐに機能を呼び出し、そのビジネスをしたいと思います。助けてください。 この質問のために限り私が持っているようですので、ジャストボタンで呼び出される関数の最初の行を掲示:キーボードが画面上にまだ素早く動いているときにボタンアクションをトリガする方法は?

@objc fileprivate func createAccount() { 
    confirmPasswordTextField.resignFirstResponder() 
+0

「アカウントの登録」ボタンをタップ可能にしたいですか?他のすべてのボタンもタップ可能になっても大丈夫ですか? – Pochi

+0

ボタンが1つしかないので、登録ボタンは1つです。どちらのオプションも素晴らしいでしょう。 –

答えて

0

あなただけ(キーボード解雇と一緒に)すべてのボタンは、実用的なようにしたい場合は、すべてのしなければならないあなたのタップジェスチャー認識がビューにタッチをキャンセルしないで行うことである。

var cancelsTouchesInView: Bool { get set } 

は、だから設定:

myTapGesture.cancelsTouchesInView = false 

https://developer.apple.com/documentation/uikit/uigesturerecognizer/1624218-cancelstouchesinview

これにより、ユーザーが「アカウントの登録」ボタンをタップすると、キーボードが閉じられ、その操作も実行されるようになります。

+0

私はviewDidLoad()にそれを持っていますが、それはしません。 dismissTap.cancelsTouchesInView = false //他のインタラクションを妨害したり取り消したりしないようにします。UITapGestureRecognizer = UITapGestureRecognizer(target:self、action:#selector(keyboardHide)) dismissTap.cancelsTouchesInView = false // view.addGestureRecognizer(dismissTap) –

関連する問題