次の階層を持つアプリを設計しました。
UIViewController
UIView
UIScrollView
UITextField
ViewDidLoad で私がした:
...
tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
tapGesture.cancelsTouchesInView = NO;
[self.scrollView addGestureRecognizer:tapGesture];
...
hideKeyboard で私がした:
- (void) hideKeyboard {
//Hide keyBoard
[self.view endEditing:YES];
}
一見、問題なく動作しますが、残念ながら問題があります。アプリケーションが実行されているとき、キーボードが期待どおりに表示されている UITextField をクリックできます。UITextField の外側をクリックすると、メソッドhideKeyboard
が呼び出され、期待どおりにキーボードが閉じられますが、UITextField をもう一度クリックしようとすると、キーボードは再び表示されません。
私が間違っていることは何ですか?誰でも知っていますか?