2016-04-03 23 views
1

Nehmen wir an, dass drei Saiten auf dem UIPasteBoard kopiert wurden:Klar UIPasteBoard

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

Ich benutze UIPasteboard.generalPasteboard() string = ""

wird klar die Pappe.? Gibt es ähnliche Funktionen für UIPasteBoard wie es clearContents() für NSPasteBoard gibt?

+0

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

Antwort

4

Wenn Sie wissen, dass Ihr Programm das einzige Pasteboard bearbeitet, dann wird yes die string -Eigenschaft auf "" setzen, um die Zwischenablage zu löschen.

Sie können dies einfach testen in Spielplatz

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

die

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

Beachten Sie jedoch, dass string Eigenschaft UIPasteboard eine Abkürzung für den ersten Karton Artikel ist, die vom Typ String ist. Auf alle Elemente vom Typ string kann über die Eigenschaft strings zugegriffen werden.

Alle untergeordneten Pappobjekte sind in items Eigenschaft modelliert, die eine Reihe von Wörterbüchern des Typs [String: AnyObject] ist. Jedes Wörterbuch enthält die Typinformationen eines Objekts im Schlüssel- und Pasteboard-Wert im Wert.

Da Sie eine systemweite generalPasteboard, kann es auch von anderen Programmen manipuliert werden, so dass unter Verwendung von aus der Pappe alle Elemente zu löschen, sollten Sie

UIPasteboard.generalPasteboard().items = [] 

verwenden Wenn Sie den Karton verwenden für Für Ihre internen Anwendungszwecke ist es besser, ein internes Pasteboard zu erstellen, als ein systemweites GeneralPasteboard zu verwenden. Siehe pasteboardWithUniqueName()

+0

Danke Teemu. generalPasteboard ist was ich brauche, also werden andere Anwendungen es auch verwenden, aber ich bin nur daran interessiert, Zeichenfolgen von der Pappe gelöscht werden. Wollen Sie sagen, dass meine Lösung alle gespeicherten Saiten löschen wird, aber nicht Ints oder Bilder? Während die von Ihnen vorgeschlagene Lösung alles klären wird? – Do2

+1

Nein, Ihre Lösung löscht nur den ersten Papp-String-Artikel. Wenn Sie alle Zeichenfolgen löschen wollen, können Sie 'pb.strings = []' versuchen. –