UITextView didChangeSelection 没有被调用?

Posted

技术标签:

【中文标题】UITextView didChangeSelection 没有被调用?【英文标题】:UITextView didChangeSelection not getting called? 【发布时间】:2012-01-11 03:26:25 【问题描述】:

我已经在我的视图控制器中实现了 UITextViewDelegate,当 textView 中的文本选择发生变化时,它需要做一些事情。

所以我使用textview:didChangeSelection 来监听回调事件。它适用于 iPhone 模拟器和 ios5,但不适用于 iPhone4 设备。为什么会这样?

调试信息告诉我textview:didChangeSelection 没有被调用,当我更改选择范围为 0 长度时......

- (void)textViewDidChangeSelection:(UITextView *)textView

    if (textView.selectedRange.location != NSNotFound) 
        selectRange = textView.selectedRange;
    

谁能帮忙解决这个问题?

【问题讨论】:

您确定您已将 UITextViewDelegate 添加到您使用的 VIEWCONTROLLER 中吗?因为我将它添加到只有文本视图的类中,我遇到了同样的问题。 【参考方案1】:

你是否在头文件中添加了 UITextViewDelegate ?

【讨论】:

是的,我已经在我的头文件中添加了 UITextViewDelegate,其他回调函数如 textviewDidBeginEditing、textviewDidChage 效果很好,只有 textViewDidChangeSelection 在 ios 设备中没有被调用 这很奇怪。你能重启你的设备,删除应用程序并尝试在它上面构建干净的 Xcode 吗? 我已经尝试过了,但效果不佳。但我发现只有当我双击同一位置的 textView 时才会调用“textViewDidChangeSelection”,这很奇怪。 (仅在 ios4.2 中)

以上是关于UITextView didChangeSelection 没有被调用?的主要内容,如果未能解决你的问题,请参考以下文章

当 UITextView 的文本超出 1 行时展开 UITextView 和 UITableView

选择另一个 UITextView 时,如何阻止 UITextView 退出第一响应者/关闭键盘?

从 UIView 中的 UITextView 复制文本后,UITextView 更改为 UIWebDocumentView?

UITextView 数据变化迅速

UITextView contentInset 在 iOS 7 上的 UITextView 中不起作用?

UITextView 设置属性后做啥?