2010-05-12 64 views
4

我想創建一個UITextView,你可以點擊它的任何地方並開始在那個位置打字。控件的默認行爲是在最後一個字符結束時開始輸入。所以,如果我有一個沒有文本的UITextView,並在控件中間點擊,我想要在那裏打字 - 而不是在左上角。iPhone SDK:如何創建一個UITextView,在您點擊時插入文本?

實現此行爲的最佳方法是什麼?我考慮將視圖的默認文本值設置爲3000個空格字符或類似的東西,但這似乎不是一個優雅的解決方案。建議?

+0

請問你可以發佈代碼嗎?我不能從本科林斯的回答中得到答案。所以請幫助我,並希望它也會對其他人有所幫助。 – 2012-01-17 07:19:28

回答

4

我建議派生自UITextView創建一個處理水龍頭的自定義視圖。您將要重寫以下方法,大概是:

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

確保userInteractionEnabled酒店YES的默認值。重寫hitTest:withEventpointInside:withEvent以確定用戶點擊視圖中的哪個位置。

請確保閱讀iOS編程指南中的Responding to Events部分,並參閱Event Handling Guide for iOS瞭解更多詳情。

無論如何,一旦您找出用戶觸摸的位置,您可以修改文字或重新定位克拉。

+0

我會試試看看它是如何發展的。我已經嘗試了很多次來處理UITextView上的觸摸事件,並且由於它傾向於吃觸摸事件,所以一般不會很順利。我從來沒有嘗試過使用命中測試。 – memmons 2010-10-29 18:12:48

+0

如果可能,你能詳細解釋一下代碼嗎?因爲許多牧師都無法理解它。 – 2012-01-12 11:31:45

相關問題