inputAccessoryViewを、オプションのキーボード用のボタンがあるXIBのファイルビューの参照アウトレットとして設定しました。これにより、標準キーボードが表示されている場合はビューが表示され、標準キーボードが非表示の場合は非表示になります。
また、ミドルゾーンでタップした場合は、オプションのキーボードを非表示にする必要があります。これにより、標準キーボードが表示されている間は非表示になります。これを行うために、同じXIBのファイルビューの参照アウトレットとして別のプロパティも設定します。
フレームのorigin.yを高い数値に設定するオプションのキーボードを非表示にしています。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.30f];
viewOptionalKeyboard.frame = CGRectMake(viewOptionalKeyboard.frame.origin.x, 1200, viewOptionalKeyboard.frame.size.width, viewOptionalKeyboard.frame.size.height);
[UIView commitAnimations];
[UIView setAnimationDuration:0];
これにより、オプションのキーボードは非表示になりますが、アニメーションは標準のキーボードの上に表示され、後ろには表示されません。補助キーボードがウィンドウ全体に上から下に移動し、非表示になるのを確認できます。
標準キーボードの「後ろ」に隠して、隠しプロセスの見栄えを良くする方法はありますか?
ビューのサイズを変更することを提案したChrisの回答で非表示がうまく機能しているため、この質問を編集しました。
ここで問題となるのは、もう一度表示することです。ボタンをタップすると、ビューが同じサイズで再び表示されるはずです。ボタンタップイベントで、次のコードを追加しました。
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.30f];
viewOptionalKeyboard.frame = CGRectMake(viewOptionalKeyboard.frame.origin.x, 500, viewOptionalKeyboard.frame.size.width, 74);
[UIView commitAnimations];
[UIView setAnimationDuration:0];
これは、オプションのキーボードを元のサイズと元のy位置に設定するためのものです。元の位置になりますが、間違っている点が2つあります。
1)標準キーボードの上/上に表示されるので、非表示の問題に戻りますが、表示するときはここに戻ります。ここでも、オプションのキーボードがウィンドウ全体に下から元の位置に来るまで表示されます。
2)オプションのキーボードを含むメインビューに属するボタンは、押しつぶされたかのように短いサイズになっています。
この問題を回避するためにキーボードを再度提示するための最良の方法はどれですか?