我被困在这里。我知道如何在iPhone方面复制和粘贴,但如何将内容从textField复制到OSX中的全局剪贴板。我一直在网上搜索,但实际上没有例子。那么让我详细解释一下我想要完成的事情。我有一个名为helloField的NSTextField,我希望能够通过按下按钮将此helloField的内容复制到全局粘贴板。如何做到这一点,我需要哪些库?感谢。
答案 0 :(得分:47)
在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])
答案 1 :(得分:2)
将字符串复制到剪贴板的代码:
[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] setString:copiedString forType:NSPasteboardTypeString];
NSStringPboardType
已弃用。 NSPasteboard.h
中有关于pboard
类型的说明:
应使用UTI替换pboard类型的使用。 Pboard类型将在以后的版本中弃用。
同样在头文件中:
APPKIT_EXTERN NSString * const NSPasteboardTypeString NS_AVAILABLE_MAC(10_6); //替换NSStringPboardType
...
APPKIT_EXTERN NSString * NSStringPboardType; //使用NSPasteboardTypeString
答案 2 :(得分:2)
对于Swift 5
let pasteboard = NSPasteboard.general
pasteboard.clearContents()
pasteboard.setString("string to copy", forType: .string)
答案 3 :(得分:0)
对于Swift 3中的Cocoa macOS:
let pasteBoard = NSPasteboard.general()
pasteBoard.clearContents()
pasteBoard.setString("something", forType: NSPasteboardTypeString)