Я застрял здесь. Я знаю, как копировать и вставлять на стороне iPhone вещи, но как я могу скопировать содержимое из текстового поля в глобальный буфер обмена в OSX. Я искал в Интернете, но примеров на самом деле нет. Поэтому позвольте мне подробно объяснить, что я пытаюсь выполнить. У меня есть NSTextField с именем helloField, и я хочу, чтобы иметь возможность скопировать содержимое этого helloField в глобальный картон, нажав кнопку. Как это можно сделать и есть ли определенные библиотеки, в которых я нуждаюсь? Спасибо.
Как скопировать textField в буфер обмена OSX?
Ответ 1
В iOS
[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 следует заменить на использование UTI. Типы Pboard будут устаревать в будущем выпуске.
Также в файле заголовка:
APPKIT_EXTERN NSString * const NSPasteboardTypeString NS_AVAILABLE_MAC (10_6);//Заменяет NSStringPboardType
...
APPKIT_EXTERN NSString * NSStringPboardType;//Использовать NSPasteboardTypeString
Ответ 3
Для Cocoa macOS в Swift 3:
let pasteBoard = NSPasteboard.general()
pasteBoard.clearContents()
pasteBoard.setString("something", forType: NSPasteboardTypeString)