2016-04-03 1 views
1

laisse supposer que 3 chaînes ont été copiés sur le UIPasteBoard:Effacer UIPasteBoard

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

J'utilise UIPasteboard.generalPasteboard() string = ""

Est-ce clairement la table de montage.? Existe-t-il une fonction similaire pour UIPasteBoard comme s'il y avait clearContents() pour NSPasteBoard?

+0

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

Répondre

4

Si vous savez que votre programme est le seul à manipuler la table de montage spécifique, alors, oui, définir la propriété string sur "" effacera le panneau de montage.

Vous pouvez facilement tester cette cour de récréation

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

qui sort

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

Toutefois, notez que string propriété de UIPasteboard est un raccourci pour le premier élément de table de montage qui est de type chaîne. Tous les éléments de type string sont accessibles via la propriété strings.

Tous les éléments de la table de montage sous-jacente sont modélisés dans la propriété items, qui est un tableau de dictionnaires de type [String: AnyObject]. Chaque dictionnaire contient les informations de type d'un objet dans la clé et la valeur de la table de montage dans la valeur.

Parce que vous utilisez un système à l'échelle generalPasteboard, il peut également être manipulé par d'autres programmes, ainsi, pour effacer tous les articles de la table de montage, vous devez utiliser

UIPasteboard.generalPasteboard().items = [] 

Si vous utilisez la table de montage pour À des fins d'application interne, il est préférable de créer une table de montage interne plutôt que d'utiliser un tableau général général. Voir pasteboardWithUniqueName()

+0

Merci Teemu. generalPasteboard est ce dont j'ai besoin, donc d'autres applications vont l'utiliser aussi bien mais je ne suis intéressé que par les chaînes à effacer du carton. Dis-tu que ma solution effacera toutes les chaînes stockées mais pas Ints ou images? Alors que la solution que vous proposez va tout effacer? – Do2

+1

Non, votre solution effacera uniquement le premier élément de chaîne de montage. Si vous voulez effacer toutes les chaînes, vous pouvez essayer 'pb.strings = []'. –