ボタンがあります。iOS 5 および 6 では通常どおり動作します。ただし、iOS 7 では、ボタンを押すとキーボードが消えますが、メソッドは呼び出されません。2回目に押すと、意図したとおりに機能します。
何故ですか?
コードは次のとおりです。
[self.loginButton addTarget:self action:@selector(loginButtonPressed:) forControlEvents:UIControlEventTouchUpInside];
UITableView セルにボタンがあります。
編集:
このメソッドの最初にキーボードを閉じる方法を次に示しますが、このメソッドは iOS7 では、ボタンを 2 回タップするまで呼び出されません。
for (UITextField *field in @[self.loginField, self.passwordField]) {
if ([field isFirstResponder]) {
[field resignFirstResponder];
}
}
外部のタップでキーボードを削除するジェスチャー認識機能もあります。
UITapGestureRecognizer *tapper = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(removeKeyboard)];
[self.view addGestureRecognizer:tapper];
tapper.cancelsTouchesInView = NO;
その方法は次のとおりです。
- (void) removeKeyboard
{
[self traverseAllSubviewsOfView:self.view withBlock:^(UIView *inView) {
[inView resignFirstResponder];
}];
}