次のコードがあります。
- (void)viewDidLoad
{
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(dismissKeyboard)];
[self.view addGestureRecognizer:tap];
tap.cancelsTouchesInView = NO;
tap.delegate = self;
[tap release];
}
-(void)dismissKeyboard {
[self.textField resignFirstResponder];
}
textField には clearButton があり、自動修正が有効になっています。clearButton をクリックすると、すべて正常に動作し、UITextField
クリア後もキーボードが表示されます。ただし、提案された自動修正を受け入れたくない場合は、キーボードが消えて、テキストが提案されたものに置き換えられます。
が必要なUITapGestureRecognizer
ので、ユーザーが のUITextField
外側をUITableView
クリックUITextField
すると、キーボードを辞任したいと思います。
ユーザーが希望するときに自動修正を拒否できるようにするには、どうすればこれを修正できますか? これが clearButton では適切に機能するのに、自動修正を拒否すると機能しないのはなぜですか?
編集:の中にあるため、clearButton で適切に動作しますUITextField
。したがって、ジェスチャは起動されません。しかし、提案されたテキスト修正をクリックすると、それが発生します... ユーザーが提案されたテキスト修正をクリックしたかどうかを確認する方法はありますか?