0

1)UIPasteboardこの方法を使用して画像をコピーします[UIPasteboard generalPasteboard].image;

2)画像を作成した後、クリーンアップしたいUIPasteboard。だから私はこのメソッドを書きます[UIPasteboard generalPasteboard].image = nil;しかしこれはios4とios5でうまく機能しますしかしそれはios6で問題を引き起こします

3)私のアプリUIPasteboardでは、値をクリーンアップまたはゼロにしUIPasteboardます。iOS 6でこれを行うにはどうすればよいですか?

4

2 に答える 2

1

申し訳ありませんが、受け入れられた答えは誤解を招く/間違っています。これは、ペーストボードから既存の値をクリアしません。

の2番目の引数setValue:forPasteboardType:は、アイテムの文字列識別子です。ドキュメントが示唆しているように、それはUTI(MobileCoreServicesを見てください)またはユーザー定義の文字列である可能性があります。

受け入れられた回答のメソッド呼び出しは、UIPasteboardNameGeneralペーストボード自体全体の識別子であるwhichを使用します(辞書の配列内の項目がの場合、1つのキーではありません[UIPasteboard items])。ペーストボードにはそのキーのアイテムが含まれていないため、その呼び出しはノーオペレーションになります。これを自分で確認するのは簡単です。[[UIPasteboard generalPasteboard] name]に等しいUIPasteboardNameGeneral。また、containsPasteboardTypes:そのキーを使用すると、が返されNOます。

ここで、iOS 6で何が起こっているのかを説明します。AppleはkUTTypePNG、ペーストボードに保存されている画像データのキーとしてUTI(たとえば)を使用している可能性があります。彼らは、そのキーに設定されている値が実際にNSDataであることを確認している可能性があります(そうでnilはありません)。

あなたの難問に対処するために、私は次のいずれかを提案することができます:

  • クリップボードに入れたコンテンツを他のアプリケーションと共有したくない場合は、を使用してアプリケーション固有のクリップボードを作成できます。+ (UIPasteboard *)pasteboardWithName:(NSString *)pasteboardName create:(BOOL)create
    • このクリップボードの内容は、アプリケーションのみがアクセスでき、アプリケーションが削除されると削除されます。
    • persistentプロパティをYESに設定しない限り、アプリが終了するとクリップボードの内容がクリアされます。
    • 一般的なクリップボードにアクセスすることで、他のアプリケーションによってクリップボードに配置されたアイテムに引き続きアクセスできます。
  • どうしても内容をクリアする必要がある場合(記載されている制限がある場合)、別の有効なイメージを設定してみてください。特定のクリップボードアイテムに複数のキーが存在する可能性があるため、このアプローチには疑問があります。

お役に立てれば。

于 2014-01-29T07:37:41.660 に答える
0

これは私が現在使用しているものです

UIPasteboard *pb = [UIPasteboard generalPasteboard];
[pb setValue:@"" forPasteboardType:UIPasteboardNameGeneral];
于 2012-11-05T16:00:43.257 に答える