我有一个正确显示URL的UITextView:
contentView.editable = NO;
contentView.dataDetectorTypes = UIDataDetectorTypeAll;
我的目标是制作它,以便您仍然可以点按此文本视图,以便在特定位置编辑其文本(就像内置的Notes应用程序一样)。这样,如果你点击一个链接,它就会启动一个浏览器,但是如果你点击其他任何地方,它就会在你点击的位置开始编辑。应该很容易,对吧?
不是很远。对UITextView进行子类化并覆盖touchesEnded,您可以将editable设置为YES。但是,当您这样做时,文本视图不记得您点击的位置(selectedRange未正确设置),因此编辑始终从文本视图的底部开始。
我甚至尝试使用未记录的setSelectionWithPoint方法,但它的行为并不像您期望的那样。
有人能想出一些方法来实现使用可点击链接正确点击编辑UITextView吗?
答案 0 :(得分:0)
也许您可以尝试使用具有相同类签名的自定义类保留UITouch和UIEvent或伪造副本,然后在将editable设置为YES后重新发送touchesBegan:
和touchesEnded:
个事件。< / p>