2010-02-22 82 views
0

我真的希望能夠在UITextView中檢測粘貼事件,但看起來無法完成。UITextView粘貼方法覆蓋

我最初嘗試繼承UITextView並覆蓋paste:方法,但它永遠不會調用粘貼事件。

有沒有人能夠做到這一點?前一個問題在同一個流行沒有回答在八月...

回答

1

文本視圖不捕獲paste:事件,因爲它不是實際的響應者不是文本視圖,但私人Web視圖(UIWebDocumentView)支持文本視圖。

但是,在粘貼時,Web視圖將調用文本視圖的(私人)-[UITextView keyboardInput:shouldInsertText:isMarkedText:],然後調用文本視圖的代表-textView:shouldChangeTextInRange:replacementText:

因此,您只需在文本視圖的委託中實施-textView:shouldChangeTextInRange:replacementText:即可。

(當然,正常的鍵盤輸入會觸發這個方法了。有區分它們不完美的方式。)

1

@KennyTM什麼我做了我的應用程序之一是跟上當前文本長度和以前的文字長度。如果(currentTextLength - previousTextLength)大於1,則用戶必須粘貼東西

-1

要檢測用戶是否解析textView中的文本,請將shouldChangeTextInRange委託中的replacementText與用戶當前所用的文本進行比較控股在UIPasteboard。然後根據需求採取行動。

代碼,請參見下面的問題我的回答:

how to know when text is pasted into UITextView