2016-04-03 16 views
1

は3つの文字列がUIPasteBoardにコピーされていることを前提としています:。クリアUIPasteBoard

UIPasteboard.generalPasteboard().string="hello" 
UIPasteboard.generalPasteboard().string="world" 
UIPasteboard.generalPasteboard().string="!" 

私は UIPasteboard.generalPasteboardを(使用)文字列= ""

それはペーストボードをクリアするのだろうか? clearContents()がNSPasteBoardのように、UIPasteBoardのための類似の関数がありますか?

+0

http://stackoverflow.com/a/11211203 – Darko

答えて

4

プログラムが特定のペーストボードを操作する唯一のアプリケーションであることがわかっている場合は、stringプロパティを""に設定すると、効果的にペーストボードがクリアされます。

あなたは簡単にUIPasteboardのstringプロパティはString型である第一ペーストボードアイテムの省略形であることに注意してください、しかし

<UIPasteboard: 0x7fed6bd0a750> 
<UIPasteboard: 0x7fed6bd0a750> 
"hello" 
[["public.utf8-plain-text": "hello"]] 
<UIPasteboard: 0x7fed6bd0a750> 
nil 
[[:]] 

を出力遊び場

var pb = UIPasteboard.generalPasteboard() 
pb.string = "hello" 
pb.string 
pb.items 
pb.string = "" 
pb.string 
pb.items 

でこれをテストすることができます。文字列型のすべての項目は、stringsプロパティからアクセスできます。

すべての基礎となるペーストボードアイテムは、というプロパティでモデル化されています。これは、タイプ[String: AnyObject]の辞書の配列です。各辞書には、キー内のオブジェクトのタイプ情報と値のペーストボード値が含まれています。

あなたはシステム全体generalPasteboardを使用しているので、また、あなたがペーストボードを使用している場合は、

UIPasteboard.generalPasteboard().items = [] 

を使用する必要があり、ペーストボードからすべての項目をクリアするには、このように、他のプログラムによって操作することができます内部アプリケーションの目的のためには、システム全体のgeneralPasteboardを使用するよりも、内部ペーストボードを作成する方がよいでしょう。 pasteboardWithUniqueName()

+0

ありがとうTeemu。 generalPasteboardは私が必要とするものなので、他のアプリも同様に使用しますが、私はペーストボードからクリアする文字列だけに興味があります。私のソリューションは格納されているすべての文字列を消去しますが、あなたが提案する解決策はすべてをクリアしますが? – Do2

+1

いいえ、ソリューションは最初のペーストボード文字列項目のみをクリアします。すべての文字列を消去する場合は、 'pb.strings = []'を試してみてください。 –

関連する問題