0
我正在嘗試在UIPopoverController中嵌入可編輯的UITextView,並且......奇怪的結果。我已經採取的步驟是:可編輯的UITextView是否可以嵌入到UIPopoverController中?
- 創建一個自定義的UIViewController類,並創建與裏面一個UITextView是控制器的.xib文件。
- 當應該調出控制器的UI操作發生時(觸及內部),我從.xib文件實例化控制器及其視圖。
- 我創建了一個新的UIPopoverController,將視圖控制器剛剛實例化爲內容視圖。
- 我presentPopoverFromRect目前它:inView:permittedArrowDirections:動畫:
下面是一些示例代碼:
- (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捕獲的),但是應用程序只是在模擬器和硬件上停止。
有什麼想法?有沒有人得到這個成功的工作,或知道它確實沒有?
在'MyTextPopupViewController'中,你是否實現了'textView:shouldChangeTextInRange:replacementText:'(或其他可能導致問題的委託方法)?如果是這樣,請發佈該代碼。 – lnafziger
另外,你應該在你的'viewDidAppear'中切換兩行,以便在你做任何事情之前正確調用super。 – lnafziger
我目前沒有實現任何的UITextViewDelegate方法。 – Christophe