2017-09-08 10 views
0

私は編集可能なUITextViewを持っています。私はこのビューからテキストをドラッグして、自分自身の上にドロップすると、テキストが移動するが、次の二つの方法が呼び出されていない:私は例のために、いくつかのタスクを(実行したい場合はiOS 11のUITextViewのドラッグアンドドロップ

textView:shouldChangeTextInRange:replacementText: 
textViewDidChange: 

私は元に戻す登録、何をすべきか関連するUIDocumentを更新する)テキストが移動した後?前もって感謝します。

答えて

1

あなたは、自己にあなたのTextViewのtextDragDelegateを設定し、

- (void)textDraggableView:(UIView<UITextDraggable> *)textDraggableView dragSessionDidEnd:(id<UIDragSession>)session withOperation:(UIDropOperation)operation; 

またはUITextDragDelegateから別の適切な方法を実装することができます。

編集:新しいテキストが別のアプリから来るかもしれないと

が実際にあなたのケースでtextDropDelegateは、よりよい解決策かもしれません。実際に

- (void)textDroppableView:(UIView<UITextDroppable> *)textDroppableView willPerformDrop:(id<UITextDropRequest>)drop; 
+0

があるように思わ

適切な方法から、あなたのオリジナルの提案は、すなわち、textDraggableView:dragSessionDidEnd:withOperation :,私の問題を解決します。私のテキストビューは、自分自身からドラッグされたテキストの移動操作のみを許可します。したがって、操作引数をチェックすることによって、テキストがそれ自身から来ているかどうかを知ることができます。私はこの方法を知らなかった。 –

+3

しかし、私はまだ、ドロップ操作がtextView:shouldChangeTextInRange:replacementText: とtextViewDidChange:をトリガーしない理由を混同しています。それは意味をなさない。 –