0

我正在尝试在 UIPopoverController 中嵌入一个可编辑的 UITextView,结果...奇怪。我采取的步骤是:

  1. 创建一个自定义 UIViewController 类,并使用该控制器创建一个 .xib 文件,其中包含一个 UITextView。
  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

0

我认为 UIPopoverController 实例需要成为您代码中的一个属性。

于 2013-08-28T23:47:55.090 回答