UITextView resignFirstResponder Crash on Back
Posted
技术标签:
【中文标题】UITextView resignFirstResponder Crash on Back【英文标题】: 【发布时间】:2014-05-16 16:50:09 【问题描述】:我正在使用UITextView
在我的应用程序上创建一个表单,并在用户滚动它后面的UIScrollView
时将其退出。
代码:
-(void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
if ([self.messageBox canResignFirstResponder])
[self.messageBox resignFirstResponder];
当我在文本视图中单击、编辑,然后通过滚动退出时,我单击 NavigationController
的“后退”按钮,然后应用程序崩溃:
[BugReportViewController scrollViewDidScroll:]: message sent to deallocated instance 0x157518390
知道如何解决这个问题吗?
【问题讨论】:
如果您没有在此控制器上执行任何操作,而只是点击返回按钮,您的应用程序是否会崩溃? @Stonz2 如果我继续在 textview 上尝试编辑某些内容,然后通过滚动退出(并调用scrollViewWillBeginDragging
)然后,当我点击返回按钮时会发生崩溃。任何其他操作都不会导致应用崩溃。
【参考方案1】:
在委托被释放后,滚动视图似乎正在向其委托发送消息。要解决此问题,请在拥有文本视图的视图控制器中覆盖 dealloc
,并将滚动视图的 delegate
属性设置为 nil
。
【讨论】:
太棒了!非常感谢 :) 所以我加了-(void)dealloc [self.scroller setDelegate:nil];
以上是关于UITextView resignFirstResponder Crash on Back的主要内容,如果未能解决你的问题,请参考以下文章
UITextView 背景图像不适合 UITextView 框架的框架大小
当 UITextView 的文本超出 1 行时展开 UITextView 和 UITableView
选择另一个 UITextView 时,如何阻止 UITextView 退出第一响应者/关闭键盘?
从 UIView 中的 UITextView 复制文本后,UITextView 更改为 UIWebDocumentView?