0

UIResponder の Copy: と Paste: メソッドをいじっています。コピーしたコンテンツをプライベート ペーストボードに書き込む必要があります。

- (void)copyToPrivatePasteboard:(id)sender
{
    UIPasteboard *privatePasteboard = [self getPrivatePasteboard];
    [privatePasteboard setString:@""];//How to get the copied string to store in pasteboard.
}

コピーした文字列をペーストボードに書き込むにはどうすればよいですか。私が取得しているパラメータはタイプidです。NSStringに変換すると、このメソッド(UIMenuController)を呼び出しているのは送信者なので適切ではありません。

4

1 に答える 1

0

あなたが正しいと理解したら、UIResponder's -copy:あなたはQのコードに置き換えたいと思っています.(そして同じことを-paste:.)

これがあなたの質問に対する答えです。ただし、最後にいくつかのコメントがあります。

  • メソッドをスウィズルすると、self はメッセージの受信者を指します。あなたの場合、それはのインスタンスですUIResponder。したがって、を使用してデータを取得する必要がありますself。どうすればこれを行うことができますか?一般的ではありません。理由は次のとおりです。

  • -copy:「Put my data to the pasteboard」以上のものを含めることができます。方法です。そこにあるコードは、あなたが知ることができない他のことを処理できます。ですから、そう簡単に代用することはできません。

  • このため、-copy:通常はサブクラスで上書きされます。(実装では何もしないと思いますUIResponder。)スウィズリング-copy:インUIResponderは、サブクラスのインスタンスの動作を変更しません。レスポンダー チェーンの概念に精通していますか?

おそらく、あなたの目標を達成するためのより良い方法があります:

  • 本当にスウィズルをやりたいのなら、それはクールなので、私は+generalPasteboardUIPasteboard)を好むでしょう。

  • ただし、最終的な目標をより詳細に説明する必要があるかもしれません。おそらく、それに到達するための完全に異なる方法があります。

于 2013-08-20T14:46:30.547 に答える