2016-04-03 2 views
1

Давайте предположим, что 3 строки были скопированы на UIPasteBoard:Ясно UIPasteBoard

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

Я использую UIPasteboard.generalPasteboard() строка = ""

Будет ясно монтажный стол.? Есть ли какие-либо подобные функции для UIPasteBoard, например clearContents() для NSPasteBoard?

+0

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

ответ

4

Если вы знаете, что ваша программа является единственным, управляющим конкретным картоном, тогда да, установка string собственности на "" будет эффективно очищать картона.

Вы можете легко проверить это площадка

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

, который выводит

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

Однако, обратите внимание, что string свойства UIPasteboard является обобщающим для первого элемента картонного, что имеет типа строки. Все элементы типа string могут быть доступны через strings.

Все основные элементы картона смоделированы по модели items, которая представляет собой набор словарей типа [String: AnyObject]. Каждый словарь содержит информацию о типе объекта в значении ключа и картон в значении.

Поскольку вы используете общесистемный generalPasteboard, также можно манипулировать другими программами, таким образом, чтобы очистить все элементы из картона, вы должны использовать

UIPasteboard.generalPasteboard().items = [] 

Если вы используете картон для в ваших внутренних целях, лучше создать внутренний картон, чем использовать общесистемный общий паспорт. См. pasteboardWithUniqueName()

+0

Спасибо Teemu. generalPasteboard - это то, что мне нужно, поэтому другие приложения также будут использовать его, но меня интересуют только строки, которые нужно очистить от картона. Вы говорите, что мое решение очистит все сохраненные строки, но не инты или изображения? Хотя решение, которое вы предлагаете, очистит все? – Do2

+1

Нет, ваше решение очистит только первый элемент строки. Если вы хотите очистить все строки, вы можете попробовать 'pb.strings = []'. –