2010-01-21 93 views
3

Apple不提供UITextView的觸摸事件處理。我正在開發的項目包括可讀和可編輯的註釋,並且我正在使用UITextView。請幫助我解決這個問題 - 我如何爲我的項目獲得觸摸事件?在UITextView中獲取觸摸事件

回答

0

通過使用自己的邏輯解決了問題。

在閱讀我們在TextView中添加自定義視圖,並與

(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

(void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event 

工作,但是當我們在編輯模式下,它是不可能的。任何如何我的要求只在可讀模式下。

感謝您的全力支持來解決問題。

4

根據Apple文檔,您可以爲UITextView設置委託並實現UITextViewDelegate。

http://developer.apple.com/iphone/library/documentation/UIKit/Reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html

具體來說,你可以確定一個UITextView是通過實施textViewShouldBeginEditing感動。

- (BOOL)textViewShouldBeginEditing:(UITextView *)textView; 

一定要在UITextView上設置委託屬性以捕獲事件。

+0

感謝回覆 - (BOOL)textViewShouldBeginEditing:(UITextView *)textView; 這些方法只會在[textView seteditable:yes]時纔會調用;但如果我想更改一些文本背景的顏色,我必須禁用編輯。 請讓我知道如何在 ui-textview的某個地方插入圖片。請儘可能在這裏發佈一些可靠的代碼 在此先感謝 – Madhu 2010-01-21 11:37:21

+0

您不需要禁用編輯以更改背景!另外,你總是可以將UITextView包裝在一個自定義的UIView中,並且可以捕獲觸摸事件(根據需要使用委託)。我這樣做是爲了輕鬆捕捉MKMapView上的觸摸事件。這是一個很好的方法,不會影響你的UITextViewDelegate方法。 – 2010-01-21 21:04:41

0

只是想補充凱文的答案。 UITextView從UIScrollView繼承。您應該獲取在UIScrollViewDelegate協議中爲文本視圖聲明的所有事件。

我:

-(void)scrollViewDidScroll:(UIScrollView *)scrollView 

當我宣佈我的類作爲UITextView中的代表。

1

創建自定義文本視圖並在自定義類中提供觸摸事件。那麼你可以在該自定義類的委託中創建方法。