如何将textField复制到OSX剪贴板?

时间:2010-09-07 00:29:37

标签: objective-c xcode macos copy clipboard

我被困在这里。我知道如何在iPhone方面复制和粘贴,但如何将内容从textField复制到OSX中的全局剪贴板。我一直在网上搜索,但实际上没有例子。那么让我详细解释一下我想要完成的事情。我有一个名为helloField的NSTextField,我希望能够通过按下按钮将此helloField的内容复制到全局粘贴板。如何做到这一点,我需要哪些库?感谢。

4 个答案:

答案 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)