我想顯示文本,並且希望能夠知道用戶觸摸的文本在哪裏。因爲文本可能很長,所以我想使用UITextView,以便包裝和一切都會被照顧。當觸摸開始或移動時,我希望自己的事件處理。我的問題是,放大鏡和選擇/全選菜單正在中斷我touchesMoved事件。禁用iPhone應用程序中UITextView中的放大鏡
如何禁用放大鏡,但仍然啓用了用戶交互,以便可以檢測觸摸?
我想顯示文本,並且希望能夠知道用戶觸摸的文本在哪裏。因爲文本可能很長,所以我想使用UITextView,以便包裝和一切都會被照顧。當觸摸開始或移動時,我希望自己的事件處理。我的問題是,放大鏡和選擇/全選菜單正在中斷我touchesMoved事件。禁用iPhone應用程序中UITextView中的放大鏡
如何禁用放大鏡,但仍然啓用了用戶交互,以便可以檢測觸摸?
你可以嘗試這裏提供的提示: How disable Copy, Cut, Select, Select All in UITextView
我建議檢查gestureRecognizers財產。
你會在數組中找到它們中的很多,並可能希望將它們全部刪除或找到觸發要攔截並刪除/替換它的事件的那些。
我用它來從一個的UITextField
你必須創建一個子類中刪除複製/粘貼和放大鏡功能,並覆蓋這兩個功能禁用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
Dwery,你是怎麼做到的呢?我拿走了8個手勢識別器,但當我握住時放大鏡仍然在那裏。 – 2012-09-06 15:12:17
Natan,IIRC手勢識別器在每次事件後重新初始化。所以我刪除股票識別器,並在每個事件後添加我自己的 – dwery 2012-09-12 14:31:17
謝謝,Dwery!我會檢查的 – 2012-09-12 14:32:23