如何使用AppleScriptObjC和NSPasteboard读取剪贴板

时间:2015-03-25 03:42:17

标签: cocoa applescript applescript-objc nspasteboard

我找到了AppleScriptObjC的方法,并找到了Shane Stanley的Everyday AppleScriptObjC帮助。但我仍然很难知道从哪里开始NSPasteboard

这是我到目前为止所拥有的:

use AppleScript version "2.4"
use framework "Foundation"
use framework "AppKit"
use scripting additions

on readClipboard(theClipboard)
    set theClipboard to current application's NSPasteboard
    return theClipboard as text
end readClipboard

set theContents to missing value
its readClipboard(theContents)

当然这不起作用。但似乎确实在做某事。

它返回:

error "Can’t make «class ocid» id «data optr000000002852F974FF7F0000» into type text." number -1700 from «class ocid» id «data optr000000002852F974FF7F0000» to text

任何指针都会非常感激。

1 个答案:

答案 0 :(得分:0)

NSPasteboard是一个能容纳不同种类的不同物品的容器。有一些标准粘贴板定义为NSGeneralPboardNSRulerPboardNSDragPboard。对于复制和粘贴操作,使用常规粘贴板 存储在普通粘贴板内的项目也可能不同。可以在粘贴板中存储public.rtfpublic.jpeg等。

总而言之,我们得到了这个解决方案:

    set theClipboard to current application's NSPasteboard's generalPasteboard's stringForType:(current application's NSPasteboardTypeString)

玩得开心,迈克尔/汉堡