0

編集可能な UITextView を UIPopoverController 内に埋め込もうとしていますが、奇妙な結果になります。私が取った手順は次のとおりです。

  1. カスタム UIViewController クラスを作成し、内部に UITextView を含むそのコントローラーで .xib ファイルを作成します。
  2. コントローラーを起動する必要がある UI アクション (内部のタッチアップ) が発生したら、コントローラーとそのビューを .xib ファイルからインスタンス化します。
  3. コンテンツ ビューとしてインスタンス化したビュー コントローラーを使用して、新しい UIPopoverController を作成します。
  4. 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 がキャッチすることはありません)、アプリケーションはシミュレーターとハードウェアの両方で単に停止します。

何かご意見は?誰かがこれをうまく機能させたことがありますか、それともうまくいかないことを確実に知っていますか?

4

1 に答える 1