私は数字パッドを非表示にするために使用していますがresignFirstResponder
、キーボードを非表示にするときはたまにしか機能しません。バックグラウンドでタップすると、キーボードは実際に非表示になります。この行も に追加しましたが、時々動作します。ユーザーが元のウィンドウに戻ると、キーボードは消えます。しかし、彼が新しいウィンドウ (元のウィンドウではない) に移動しても、キーボードは消えません。メソッドを使用してデバッグでチェックインしましたが、どちらの場合も、テキストフィールドは実際には最初のレスポンダーではありません (ただし、前述のように、キーボードが表示されたままになるケースが 1 つあります)。backgroundTap
[textField resignFirstResponder];
viewWillDisappear
isFirstResponder
の実装viewWillDisappear
は次のとおりです。
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[textField resignFirstResponder];
[self.view endEditing:YES];
}
新しいウィンドウにはこのキーボードに関連するテキスト フィールドがないため、viewWillDisappear の両方のケースでキーボードを非表示にしたいと考えています。全く違う要素を持っています。
別のビューをプッシュするイベントは、ボタンのクリックではなく、テキスト フィールドの編集の開始です。ビューに 3 つのテキスト フィールドがありますが、そのうちの 1 つだけがキーボードを表示します。他の 2 つは別のビューをプッシュします。これは、textFieldDidBeginEditing のコードです。
-(void)textFieldDidBeginEditing:(UITextField *)textField{
if (textField1.editing == YES)
{
[self performSegueWithIdentifier:@"goToView1" sender:self];
}
else if (textField2.editing == YES)
{
[self performSegueWithIdentifier:@"goToView2" sender:self];
}
}
一方、キーボードを生成するテキスト フィールドは textField3 です。
どちらの場合もキーボードを非表示にする方法についてのアイデアはありますか?