我有一个采用 UITextInput 协议的自定义文本输入视图。此视图嵌入在 UIScrollView 中。采用视图的 UITextinput 包括 UITextInteraction。当我将选择句柄拖到当前可见区域的边缘(顶部或底部)时,视图应自动滚动并选择文本(如 UITextView)。有谁知道如何实现这一目标?
我希望 UITextInteraction 可以通过它的委托通知我必要的事件,但它没有(甚至自动处理这个功能)。
我试图拦截最近的Position(指向:CGPoint)-> UITextPosition?,每当用户触摸 UITextInput 采用视图时都会调用它。因此,我可以使用它来跟踪选择手柄的拖动操作。有一次,用户到达视图的顶部,我向上滚动。但是,我无法检测到用户何时松开手柄(触摸结束时)。发生这种情况时,scrollView 应该停止滚动。就我而言,滚动视图一直滚动到顶部。
我还尝试拦截 selectionRects(for range: UITextRange) -> [UITextSelectionRect],但在滚动过程中偶尔会调用它。
我也无法检测到 touchesEnded()。UITextInteraction 似乎阻止了调用。此外,我无法实现自己的平移手势。UITextInteraction 在选择操作期间也会阻止这一点。
有人成功使用过 UITextInteraction 吗?在这个阶段,它似乎非常不成熟。