Подтвердить что ты не робот

Как скопировать textField в буфер обмена OSX?

Я застрял здесь. Я знаю, как копировать и вставлять на стороне iPhone вещи, но как я могу скопировать содержимое из текстового поля в глобальный буфер обмена в OSX. Я искал в Интернете, но примеров на самом деле нет. Поэтому позвольте мне подробно объяснить, что я пытаюсь выполнить. У меня есть NSTextField с именем helloField, и я хочу, чтобы иметь возможность скопировать содержимое этого helloField в глобальный картон, нажав кнопку. Как это можно сделать и есть ли определенные библиотеки, в которых я нуждаюсь? Спасибо.

4b9b3361

Ответ 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)