viewDidLoad
メソッドに、このジェスチャ認識機能を追加します。
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyboard)];
gestureRecognizer.cancelsTouchesInView = NO;
[self.view addGestureRecognizer:gestureRecognizer];
次にdismissKeyboard
メソッドを追加します。
- (void) dismissKeyboard{
[YOURFIELDHERE resignFirstResponder];
}
これを追加して、ボタンがまだクリック可能で、ジェスチャ認識エンジンによってオーバーライドされないようにする必要もあります。
gestureRecognizer.delegate = self; // in viewDidLoad
<UIGestureRecognizerDelegate> //in your header file
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch {
if ([touch.view isKindOfClass:[UIButton class]]){
return NO;
}
return YES; // handle the touch
}