重複の可能性:
ボタン付きのテキストをコピーして貼り付ける
iPhone で画面を切り替えることなく、コードでクリップボードから過去のものにしたいのですが、何か考えはありますか?
私はこれらの操作をこれらとは異なるコードで実行したいと考えています。
これらが可能かどうか、またはその場合にiOSにアクセスするかどうかを尋ねていますか?
重複の可能性:
ボタン付きのテキストをコピーして貼り付ける
iPhone で画面を切り替えることなく、コードでクリップボードから過去のものにしたいのですが、何か考えはありますか?
私はこれらの操作をこれらとは異なるコードで実行したいと考えています。
これらが可能かどうか、またはその場合にiOSにアクセスするかどうかを尋ねていますか?
[UIPasteboard generalPasteboard]
UIPasteboard
ユーザーの現在のクリップボードの内容を悔い改めるインスタンスを提供します。のように使う
- (IBAction)pasteButtonPressed {
self.myTextView.text = [[UIPasteboard generalPasteboard] string];
}
UIResponderStandardEditActions
非公式プロトコルは、その目的のために設計されたメソッドを宣言しますpaste:
。UITextView
(他のサブクラスと共にUIResponder
) この非公式プロトコルに準拠しているため、このメソッドに応答します。
これには、貼り付け操作のすべての側面を管理できるという利点があります。特に、挿入ポイントの位置にテキストを貼り付けたり、従来の貼り付け操作のように、選択したテキストがあれば置き換えたりします。
もう 1 つの解決策は、UIPasteboard
自分自身に含まれるテキストをテキスト ビューに挿入することです。ただし、その場合はselectedTextRange
(選択したテキストまたは挿入ポイント) を置き換えて、の内容全体を置き換えないようにしてUITextView
ください。
この目的のために、正式な protocolをUITextView
実装するUITextInput
UITextView
という事実を使用します。このプロトコルは、テキスト入力を管理するオブジェクト ( 、UITextField
など)を処理するために必要なすべてのメソッドを宣言します。特にreplaceRange:withText:
とselectedTextRange
:
NSString* pasteboardText = [[UIPasteboard generalPasteboard] string];
[self.myTextView replaceRange:self.myTextView.selectedTextRange withText:pasteboardText];