2010-02-22 56 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