ポップオーバー内に含まれるいくつかのフォームを持つアプリに取り組んでいます。私の問題は、テキスト入力フィールドをクリックしてキーボードが表示されると、ポップオーバーが画面の左上隅 (0,0) に縮小し、入力しているフィールドが表示されないことです。キーボードを隠すボタンをクリックすると、ポップオーバーは通常のサイズと位置に戻ります。
キーボードが表示されたときにポップオーバーのサイズ変更を防ぐ方法はありますか?
私の説明が不十分な場合のスクリーンショットを次に示します。
編集:ポップオーバーが画面に表示される方法のコードは次のとおりです。
(void)displayPopoverForOrientation:(UIInterfaceOrientation)orientation {
if ([Utilities getAppDelegate].menuPopover) {
CGRect rect = CGRectMake(0, 0, 0, 0);
if (orientation == UIInterfaceOrientationLandscapeLeft ||
orientation == UIInterfaceOrientationLandscapeRight) {
if (self.currentPopover == RESERVATIONS_POPOVER) {
rect = CGRectMake(365, 0, 0, 0);
} else if (self.currentPopover == ACCOUNT_POPOVER) {
rect = CGRectMake(600, 0, 0, 0);
} else if (self.currentPopover == RESORTS_POPOVER) {
rect = CGRectMake(0, 0, 0, 0);
}
}
[[Utilities getAppDelegate].menuPopover presentPopoverFromRect:rect
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionUp
animated:YES];
}
}
ポップオーバー内には、xib でレイアウトが設定された別のビュー コントローラーがあります。ご不明な点がございましたら、お気軽にお問い合わせください。私は iOS と Objective C にはかなり慣れていませんが、コーディングは初めてではないので、明確にするために最善を尽くします。
編集 2: これは iOS 5 でのみ発生することがわかりました。古いバージョンの iOS では、キーボード用の十分なスペースができるまでポップオーバーが垂直方向に折りたたまれます。iOS 5 でこの動作が変更された理由について何か考えはありますか?