Я застрял здесь. Я знаю, как копировать и вставлять на стороне iPhone вещи, но как я могу скопировать содержимое из текстового поля в глобальный буфер обмена в OSX. Я искал в Интернете, но примеров на самом деле нет. Поэтому позвольте мне подробно объяснить, что я пытаюсь выполнить. У меня есть NSTextField с именем helloField, и я хочу, чтобы иметь возможность скопировать содержимое этого helloField в глобальный картон, нажав кнопку. Как это можно сделать и есть ли определенные библиотеки, в которых я нуждаюсь? Благодарю.Как скопировать textField в буфер обмена OSX?
12
A
ответ
45
КСН
[UIPasteboard generalPasteboard].string = helloField.text;
На OSX
[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] setString:helloField.stringValue forType:NSStringPboardType];
На MacOS и Swift 3.x
let pasteBoard = NSPasteboard.general()
pasteBoard.clearContents()
pasteBoard.writeObjects([text as NSString])
2
кодекса, чтобы скопировать строку в буфер обмена:
[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] setString:copiedString forType:NSPasteboardTypeString];
NSStringPboardType
устарел. Там записка в NSPasteboard.h
о pboard
типов:
Использование типов pboard следует заменить с использованием ИМП. Типы Pboard будут устаревать в будущей версии.
Также в файле заголовка:
APPKIT_EXTERN NSString * сопзЬ NSPasteboardTypeString NS_AVAILABLE_MAC (10_6); // Заменяет NSStringPboardType
...
APPKIT_EXTERN NSString * NSStringPboardType; // Использование NSPasteboardTypeString
0
какао Macos в Swift 3:
let pasteBoard = NSPasteboard.general()
pasteBoard.clearContents()
pasteBoard.setString("something", forType: NSPasteboardTypeString)
Просто разобрался (на MonoMac для OS X), что 'clearContents' требуется, в противном случае' setString' терпит неудачу и возвращает ' false'. –
Необходимо исключить скобки на первой строке в реализации Swift: let pasteBoard = NSPasteboard.general – Aarhus88