2010-04-04 80 views
1

我想顯示文本,並且希望能夠知道用戶觸摸的文本在哪裏。因爲文本可能很長,所以我想使用UITextView,以便包裝和一切都會被照顧。當觸摸開始或移動時,我希望自己的事件處理。我的問題是,放大鏡和選擇/全選菜單正在中斷我touchesMoved事件。禁用iPhone應用程序中UITextView中的放大鏡

如何禁用放大鏡,但仍然啓用了用戶交互,以便可以檢測觸摸?

回答

1

我建議檢查gestureRecognizers財產。

你會在數組中找到它們中的很多,並可能希望將它們全部刪除或找到觸發要攔截並刪除/替換它的事件的那些。

我用它來從一個的UITextField

+0

Dwery,你是怎麼做到的呢?我拿走了8個手勢識別器,但當我握住時放大鏡仍然在那裏。 – 2012-09-06 15:12:17

+0

Natan,IIRC手勢識別器在每次事件後重新初始化。所以我刪除股票識別器,並在每個事件後添加我自己的 – dwery 2012-09-12 14:31:17

+0

謝謝,Dwery!我會檢查的 – 2012-09-12 14:32:23

2

你必須創建一個子類中刪除複製/粘貼和放大鏡功能,並覆蓋這兩個功能禁用select/select all/copy/magnifying

select/select all/copy/

- (BOOL)canPerformAction:(SEL)action withSender:(id)sender 

參考: https://stackoverflow.com/a/1429320/1526023

magnifying

- UILongPressGestureRecognizer 
- (BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer 

參考: https://stackoverflow.com/a/10641203/1526023