UITextField 事件处理
是否可以检测用户在 UITextField 中切换到哪个文本位置(只是切换而不是编辑,文本字段是只读的)?例如,通过捕获触摸开始事件然后处理选项卡位置?
Is it possible to detect at what text position the user tabs into a UITextField (just tabbing not editing, the text field is read-only)? E.g. by capturing the touches began event and then processing the tabbed position?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,为 UITextField 设置委托,您可以知道用户在文本字段中做什么。请参阅 UITextField 类参考了解详细信息。
编辑:好的,因为它是只读文本字段,所以您应该子类化 UITextField 并覆盖 beginTrackingWithTouch:withEvent: 和 endTrackingWithTouch:withEvent: 这样你就可以看到在哪里触碰和触碰发生在 UIControl 内(UITextField 是 UIControl)。这些方法是通过 UITouch 对象调用的,该对象告诉您触摸发生在 UIControl (UITextField) 中的位置。
我不知道你为什么要这样做。但无论如何,从那里开始,您必须根据控件中的触摸 x,y 偏移量找出触摸发生在文本中的位置。这将是另一个需要解决的有趣任务。
Yes, set a delegate for UITextField and you can tell what the user is doing in the text field. See the UITextField class reference for details.
EDIT: OK, since it's a readonly text field, you should subclass UITextField and override the beginTrackingWithTouch:withEvent: and endTrackingWithTouch:withEvent: so you can see where the touch down and touch up occurred withing the UIControl (UITextField is a UIControl). Those methods are called with a UITouch object that tells you where the touch occurred within the UIControl (UITextField).
I don't know why you would want to do this. But anyway from there you'll have to figure out where in the text the touch occurred given the touch x,y offset in the control. That'll be another fun task to solve.