私はこのようなモーダルセットアップを持っています:
外観にもかかわらず、最初の2つのフィールドはUITextFieldsであり、ファーストレスポンダーになり、キーボードを表示します。3番目の「Department」アイテムはテーブルビューであり、別のビューをプッシュします。
スクロールビューを実装して、いずれかのフィールドの編集中に、ユーザーがスクロールして部門のセルにアクセスできるようにしました。
選択した場合、プッシュする前にキーボードを非表示にします。細かい部分ですが、Appleの「カレンダー」アプリに新しいイベントを追加してみてください。ファーストレスポンダーとして最初のテキストフィールドで開きます(したがって、キーボードが存在します)。開始/終了セルを選択すると、次のビューが押されるときにキーボードが非表示になります。
どうすればこれを達成できますか?テストとして私は試しました:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"hiding keyboard");
if ([ingredientName isFirstResponder]) {
NSLog(@"resigning name field");
[ingredientName resignFirstResponder];
}
else if ([ingredientAmount isFirstResponder]){
NSLog(@"resigning amount field");
[ingredientAmount resignFirstResponder];
}
}
ロギングは、これらが呼び出されていることを確認します。しかし、キーボードは隠れません。ビューがスライドするとき、それは単にその場にとどまります。そして戻ったとき、前のフィールドにはまだフォーカスがあります(そしてキーボードは外れています)。
何か案は?