Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何将文本字段复制到OSX剪贴板?_Objective C_Xcode_Macos_Copy_Clipboard - Fatal编程技术网

Objective c 如何将文本字段复制到OSX剪贴板?

Objective c 如何将文本字段复制到OSX剪贴板?,objective-c,xcode,macos,copy,clipboard,Objective C,Xcode,Macos,Copy,Clipboard,我被困在这里了。我知道如何在iPhone端复制和粘贴内容,但如何将文本字段中的内容复制到OSX中的全局剪贴板。我一直在网上搜索,但实际上没有任何例子。所以,让我详细解释一下我想要实现的目标。我有一个名为helloField的NSTextField,我希望能够通过按下按钮将此helloField的内容复制到全局粘贴板。如何做到这一点?我是否需要某些库?谢谢。在iOS上 [UIPasteboard generalPasteboard].string = helloField.text; 关于OSX

我被困在这里了。我知道如何在iPhone端复制和粘贴内容,但如何将文本字段中的内容复制到OSX中的全局剪贴板。我一直在网上搜索,但实际上没有任何例子。所以,让我详细解释一下我想要实现的目标。我有一个名为helloField的NSTextField,我希望能够通过按下按钮将此helloField的内容复制到全局粘贴板。如何做到这一点?我是否需要某些库?谢谢。

在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])

将字符串复制到剪贴板的代码:

[[NSPasteboard generalPasteboard] clearContents];
[[NSPasteboard generalPasteboard] setString:copiedString forType:NSPasteboardTypeString];
NSStringPboardType
已弃用。
NSPasteboard.h
中有一个关于
pboard
类型的注释:

使用pboard类型应替换为使用UTI。Pboard类型将在将来的版本中被弃用

也在头文件中:

APPKIT_EXTERN NSString*常量NSPasteboardTypeString NS_可用\u MAC(10_6);//替换NSStringPboardType

APPKIT_EXTERN NSString*NSStringPboardType//使用NSPasteboardTypeString


对于Swift 3中的Cocoa macOS:

let pasteBoard = NSPasteboard.general()
pasteBoard.clearContents()
pasteBoard.setString("something", forType: NSPasteboardTypeString)
斯威夫特5号

let pasteboard = NSPasteboard.general
pasteboard.clearContents()
pasteboard.setString("string to copy", forType: .string)

刚刚发现(在MonoMac for OS X上)需要
clearContents
,否则
setString
会失败并返回
FALSE
。在Swift实现中必须省略第一行的括号:让pasteBoard=NSPasteboard.general