Iphone UITextView:如何以编程方式设置selectedRange并成为第一响应者?

Iphone UITextView:如何以编程方式设置selectedRange并成为第一响应者?,iphone,uitextview,becomefirstresponder,Iphone,Uitextview,Becomefirstresponder,我有一个包含文档的UITextView。如果用户触摸文档,则插入点(selectedRange属性)将被适当设置,UITextView将成为第一个响应者(显示键盘)。耶 我如何以编程方式做同样的事情?假设我有一个标题为“在字符1000处编辑”的按钮。我希望将selectedRange设置为[1000,0],然后让textview成为第一响应者 问题 textview.selectedRange setter似乎仅在从ViewDidDisplay调用时有效 [textview becomeFirs

我有一个包含文档的UITextView。如果用户触摸文档,则插入点(selectedRange属性)将被适当设置,UITextView将成为第一个响应者(显示键盘)。耶

我如何以编程方式做同样的事情?假设我有一个标题为“在字符1000处编辑”的按钮。我希望将selectedRange设置为[1000,0],然后让textview成为第一响应者

问题

  • textview.selectedRange setter似乎仅在从ViewDidDisplay调用时有效

  • [textview becomeFirstResponder]将插入点设置为文档的结尾

  • 所以,我能做的最好的事情就是首先成为第一响应者,然后设置selectedRange。用户看到视图滚动到文档底部,然后返回到所需的插入点。有点难看


    我是否应该在转换过程中通过破解“scrollEnabled”和“editable”标志来隐藏丑陋?或者有更好的方法吗?

    你可能会被困在黑客攻击中。这个怎么样:


    设置选定范围时隐藏视图(可能通过在UITextView上放置另一个相同大小的视图)以隐藏丑陋的滚动。然后,当选择范围时,在视图显示后的一段时间内,将视图取消隐藏。

    您可能会被困在进行黑客攻击。这个怎么样:

    设置选定范围时隐藏视图(可能通过在UITextView上放置另一个相同大小的视图)以隐藏丑陋的滚动。然后,当选择范围时,设置取消隐藏视图,显示ViewDid后的一段时间