问题标签 [nspasteboard]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - NSServices:使用沙盒应用程序“如何在 Finder 中创建新文件”
我尝试向我的应用程序添加服务。该应用程序有一个名为“MyService”的服务。我在 Finder 中有一个文件,我想在同一位置用新名称复制该文件。用户将右键单击该文件并选择 MyService。一个新文件将出现在原始文件旁边,并带有一个新文件名。问题是我的应用程序是沙盒的。我可以通过以下方式获取所选文件的 url:
我的 fileArray 将包含文件路径。然后我可以用新的文件名更改这个文件路径。如果我只是使用创建一个新文件:
我得到一个错误!我知道我在做什么是错误的,但是如何告诉 Finder 用户确实提交了该操作,因此该操作在某种程度上是安全的。如何判断这个 newFileURL 是允许的?谢谢您的帮助
macos - 有没有办法检查应用程序将接受哪些粘贴板项目?
根据我对粘贴板工作原理的理解,当发出粘贴请求时,请求者还会指出它允许的数据类型。有没有办法在发出粘贴请求之前获取有关应用程序的信息?
objective-c - 将 FileURL 的名称写入粘贴板
我想使用[pasteboard writeObjects:pasteboardArray];
wherepasteboard
是通用粘贴板的对象并且pasteboardArray
是 NSURL 的 NSArray 将一些文件 URL 写入通用粘贴板。它在粘贴板上写网址,例如
文件://本地主机/用户/
文件://本地主机/卷/
...等等
我想把这些 URL 写成如下
用户
卷
..等等
即只有文件/目录的名称,就像系统在复制任何文件/目录时所做的那样。
macos - 用 NSPasteboard 中的第二个最新项目替换最新项目
有没有办法从粘贴板中全局删除当前项目(Command+V在任何应用程序中按下时都会显示的项目)并使其按下Command+V粘贴最后一个复制的项目?
假设我复制foo
然后bar
,我在我的应用程序中按下一个bar
从粘贴板中删除的按钮,现在如果我按下Command+V任何地方(在任何应用程序中)我看到foo
粘贴并且bar
无处可见,它已经完全从用户的机器上消失了。
macos - 从 NSPasteBoard 存储和检索自定义对象
我有一个属于此类的对象,其中包含以下声明:
标题
children
保存该类的其他对象,node
保存可以是NSView
或的对象NSImageView
。
我希望能够将这种类型的对象复制和粘贴到/从NSPasteboard
.
我有谷歌,但解释很模糊。
我应该怎么做才能使这个类对 NSPasteboard 可复制/可读,或者换句话说,使其符合NSPasteboardWriting
协议NSPasteboardReading
?
我对这是如何完成的一无所知,而且像往常一样,Apple 文档和没有什么是一回事。
objective-c - 全局替换 NSPasteboard.generalPasteboard()
我希望NSPasteboard.generalPasteboard()
暂时切换到由我的应用生成的自定义NSPasteboard.pasteboardWithUniqueName()
因此,当用户在切换粘贴板时按下 Cmd+C/Cmd+V 时,将使用我的应用程序的粘贴板而不是一般的粘贴板。
有没有办法做到这一点?
objective-c - 右键单击文本并选择服务如何工作?
[1] 当我选择并右键单击任何应用程序中的任何文本时,我会看到一个Services
菜单,我可以在其中单击以调用任何服务,例如Search With Google
.
单击后,一个NSPasteboard
对象会自动发送到包含所选文本的服务。
[2] 3rd 方应用程序可以使用该BOOL NSPerformService ( NSString *itemName, NSPasteboard *pboard )
功能以编程方式调用任何服务。
在这里,应用程序必须设置NSPasteboard
发送到服务的对象。
有没有办法以编程方式调用任何服务,但不设置NSPasteboard
对象(NSPasteboard
对象应自动包含 [1] 中的选定文本)?
[1] 中的 OS X如何将NSPasteboard
包含选定文本的对象发送到服务?有一些私有API吗?
cocoa - 如何使用 AppleScriptObjC 和 NSPasteboard 读取剪贴板
我正在寻找 AppleScriptObjC 的方法,并且发现 Shane Stanley 的Everyday AppleScriptObjC很有帮助。但我仍然很难知道从哪里开始NSPasteboard
。
这是我到目前为止所拥有的:
当然,这是行不通的。但它似乎确实在做些什么。
它返回:
任何指针将不胜感激。
objective-c - 可可:拖放 svg 图像
我正在开发在 NSCollectionView 中显示图标的简单应用程序。NSCollectionView 以 png 格式显示图标预览,用户可以将其拖到图像编辑器中。我想允许用户拖放不仅是 png,还包括 svg 文件。我加载了 svg 图像数据,但我如何将其复制到 NSPasteboard 以将 svg 数据复制到 Sketch 应用程序。
objective-c - NSRTFPboardType 并粘贴到 gmail 浏览器窗口?
我有一个NSTextView
包含一些带有属性的文本(语法突出显示)。我正在尝试使用一个复制选项来保持语法突出显示,以便我可以将其粘贴到 gmail 文本窗口中。目前,当我复制粘贴时突出显示不会出现,但是如果我要直接从这个 stackoverflow 页面复制以下部分:
并将其粘贴到 gmail 中,它将以完整的语法高亮粘贴没有问题。上面的代码是我用来生成我的 RTF 代码的,我可以确认它确实生成了正确的 RTF,因为我有一个test
正在生成的变量。
有什么想法我在这里做错了吗?据我了解,这应该有效。
(我应该注意到我已经在多种浏览器中尝试过——Chrome、Safari 和 Firefox)。