編集可能な UITextView を UIPopoverController 内に埋め込もうとしていますが、奇妙な結果になります。私が取った手順は次のとおりです。
- カスタム UIViewController クラスを作成し、内部に UITextView を含むそのコントローラーで .xib ファイルを作成します。
- コントローラーを起動する必要がある UI アクション (内部のタッチアップ) が発生したら、コントローラーとそのビューを .xib ファイルからインスタンス化します。
- コンテンツ ビューとしてインスタンス化したビュー コントローラーを使用して、新しい UIPopoverController を作成します。
- presentPopoverFromRect:inView:permittedArrowDirections:animated: で提示します。
コード例を次に示します。
- (void)noteButtonPressed:(id)sender {
self.noteview = [[MyTextPopupViewController alloc] initWithNibName:@"MyTextPopupViewController" bundle:nil ];
UIPopoverController *popoverController = [[UIPopoverController alloc] initWithContentViewController:self.noteview];
self.popover = popoverController;
self.popover.delegate = self;
[self.popover presentPopoverFromRect:((UIView*)sender).frame
inView:self.view
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
}
次に、MyTextPopupViewController 内で、テキスト ビューがキーボードを表示する最初のレスポンダーであることを確認します。
- (void)viewDidAppear:(BOOL)animated {
[self.view becomeFirstResponder];
[super viewDidAppear:animated];
}
そして、それはすべて機能します...機能しなくなるまで。場合によっては、完全に機能することもあります。また、すぐに、または数回のキーストロークの後に、メイン イベント ループ (!) を終了してアプリケーションがクラッシュする場合もあります。例外はスローされませんが (少なくとも lldb がキャッチすることはありません)、アプリケーションはシミュレーターとハードウェアの両方で単に停止します。
何かご意見は?誰かがこれをうまく機能させたことがありますか、それともうまくいかないことを確実に知っていますか?