【问题标题】:iPhone SDK: How to create a UITextView that inserts text where you tap?iPhone SDK:如何创建一个在您点击的地方插入文本的 UITextView?
【发布时间】:2010-05-12 21:07:07
【问题描述】:

我想创建一个 UITextView,您可以点击其中的任何位置并在该位置开始输入。控件的默认行为是从最后一个字符结束的地方开始输入。所以,如果我有一个没有文本的 UITextView 并点击控件中间,我想从那里开始输入——而不是在左上角。

实现此行为的最佳方式是什么?我考虑过将视图的默认文本值设为 3000 个空格字符或类似的值,但这似乎不是一个优雅的解决方案。有什么建议吗?

【问题讨论】:

  • 请问您可以发布代码吗?我无法从 Ben Collins 的回答中得到答案。所以请帮助我,希望对其他人也有帮助。

标签: iphone uitextview


【解决方案1】:

我建议从 UITextView 派生来创建处理点击的自定义视图。您可能需要覆盖以下方法:

  • touchesBegan:withEvent
  • touchesMoved:withEvent
  • touchesEnded:withEvent
  • touchesCancelled:withEvent

确保userInteractionEnabled 属性的默认值为YES。覆盖 hitTest:withEventpointInside:withEvent 以找出用户在您的视图中点击的位置。

请务必阅读 View Programming Guide for iOS 中的Responding to Events 部分,并参阅Event Handling Guide for iOS 了解更多详细信息。

无论如何,一旦确定用户触摸的位置,您就可以根据需要修改文本或重新定位 karat。

【讨论】:

  • 我会试一试,看看效果如何。我已经尝试过很多次来处理 UITextView 上的触摸事件,但由于它倾向于吃触摸事件的方式,它通常并不顺利。不过,我从未尝试过使用命中测试。
  • 能不能用代码详细解释一下?因为很多牧师看不懂。
猜你喜欢
  • 2017-09-25
  • 1970-01-01
  • 1970-01-01
  • 2011-06-17
  • 1970-01-01
  • 1970-01-01
  • 2023-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多