26

テキストのブロックがUITextViewに貼り付けられると、どのようなイベントが発生しますか?テキストを貼り付けるときに、textViewのフレームを変更する必要があります。

読んでくれてありがとう。

4

11 に答える 11

16

UITextView はその UITextViewDelegate メソッドを呼び出します

 - (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text

デリゲートが設定されている場合。これは、キーボードで文字が入力されたときと、テキストがテキスト ビューに貼り付けられたときに呼び出されます。貼り付けられたテキストは、replacementText 引数です。

http://developer.apple.com/library/ios/#documentation/uikit/reference/UITextViewDelegate_Protocol/Reference/UITextViewDelegate.html#//apple_ref/occ/intf/UITextViewDelegateを参照してください。

于 2012-09-19T02:30:55.923 に答える
6

これは完璧に機能しています

Xcode 11x Swift 5x

 func textView(_ textView: UITextView, shouldChangeTextIn range: NSRange, replacementText text: String) -> Bool {
    if text.contains(UIPasteboard.general.string ?? "") {
        return false
    }
    return true
}

ユーザーがテキスト フィールドに貼り付けようとするたびに、if 条件が実行されます。
このコードは貼り付けを停止します。

于 2018-06-26T12:06:22.580 に答える
5

サブクラスの UITextview を試して、この関数をオーバーライドしてください。

public override func paste(_ sender: Any?) 
于 2017-11-10T12:40:20.773 に答える