iPhone SDK:如何创建一个UITextView,在您点按的位置插入文本?

时间:2010-05-12 21:07:08

标签: iphone uitextview

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

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

1 个答案:

答案 0 :(得分:4)

我建议从UITextView派生来创建一个处理水龙头的自定义视图。您可能希望覆盖以下方法:

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

确保userInteractionEnabled属性的默认值为YES。覆盖hitTest:withEventpointInside:withEvent以确定用户点按视图的位置。

请务必阅读“适用于iOS的视图编程指南”中的Responding to Events部分,另请参阅Event Handling Guide for iOS了解详情。

无论如何,一旦弄清楚用户触摸的位置,您可以根据需要修改文本或重新定位克拉。