问题标签 [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.

0 投票
1 回答
929 浏览

cocoa - 如何在没有代理对象的情况下从 NSArrayController 获取选定的对象?

我正在尝试在NSTableViewNSArrayController. 我的copy:方法如下所示:

当我尝试执行复制时,访问控制器的选择时出错,因为它返回一个代理对象:

如何获得实际选定的对象?

0 投票
1 回答
389 浏览

objective-c - 如何知道另一个 Cocoa 应用程序何时粘贴您放入通用粘贴板的项目

在 Mac OS X 应用程序 (Cocoa) 中,我将一个项目复制到通用 pasteboardNSPasteboard.generalPasteboard()中。该项目利用实现协议的对象,NSPasteboardItemDataProvider在用户使用另一个应用程序粘贴数据时提供数据。

根据目标应用程序选择的类型,可以完成一些临时工作(如将文件写入临时文件)。

有没有办法检测此操作何时完成或取消,所以我可以在之后进行一些清理(如删除先前创建的临时文件)?

例如,我使用相同的数据提供程序进行拖动复制/粘贴操作。采用NSDraggingSource协议,我实现了 - draggingSession:endedAtPoint:operation:知道何时进行清洁的方法。

0 投票
1 回答
530 浏览

macos - 避免使用 NSPasteboardItemDataProvider 阻塞 NSDraggingSession 中的主线程

在 Mac OS X 应用程序 (Cocoa) 中,我使用NSDraggingSession. 使用NSDraggingItem实现协议的对象,NSPasteboardItemDataProvider在用户丢弃它时提供数据。

当我处理图像时,所涉及的类型是:NSPasteboardTypePNG、、、和。这些图像位于远程位置,因此在将它们提供给粘贴板之前,我必须从 Internet 下载它们。kPasteboardTypeFileURLPromisekUTTypeFileURLcom.adobe.photoshop-imagepublic.svg-image

我实现了- pasteboard(pasteboard:item:provideDataForType:)这样的方法:

  • 如果请求的类型是kPasteboardTypeFileURLPromise,我将获取粘贴位置,并在粘贴板中构建并设置 URL 字符串,其中包含将来应该写入文件的位置。

  • 如果请求的类型是kUTTypeFileURL,我下载文件,指定一个临时位置并将下载的文件写入该位置。然后,我在粘贴板中设置了该位置的 URL 字符串。

  • 如果请求的类型是其他类型之一,我下载文件并NSData在粘贴板中设置纯文本。

所有这些操作都在主线程上执行,产生了一些我想摆脱的滞后。

我尝试在后台线程上执行这些操作,然后返回主线程在粘贴板中设置最终数据,但这不起作用,因为该方法之前完成。

有谁知道实现它的方法?

0 投票
0 回答
370 浏览

macos - 如何在 mac 应用程序中通过快捷方式(Command + V)观察粘贴事件

在我的 mac 应用程序中,我需要观察从粘贴板粘贴的快捷方式,然后会记录一些内容。

这可能吗?怎么做?

感谢您提供任何线索。

0 投票
1 回答
844 浏览

excel - 将数据写入 NSPasteboard 并粘贴到 Excel 按列和行拆分

关于 Swift 对 NSPasteboard 的使用。我想编写一个 OS X 程序来复制 NSTableView 数据并将其粘贴到按行和列拆分的 Excel 中,以匹配 Excel 格式。当前代码:

我不知道如何调整 NSPasteboard 中的 NSPasteBoardWriting 数据以插入 ASCII 或 ???

0 投票
2 回答
1250 浏览

copy - 使用 Swift 复制选定的文本

我正在 OS X 中编写一个弹出菜单栏应用程序。

目标是将当前活动应用程序(不是我的弹出窗口)的选定文本复制到我的应用程序中,以便我可以将其用作字符串。

0 投票
0 回答
111 浏览

cocoa - 带有 RTF/RTFD 更改字体的 NSPasteboard

我正在开发一个将图像与文本粘贴在一起的实用程序。到目前为止,我发现做到这一点的最好方法是NSPasteboard在 RTFD 数据流中使用和封装图像和文本。我遇到的问题是,即使我没有字体属性(我已经检查过),每次我将复制的代码粘贴到文档中时,它都会将字体更改为“Helvetica size 12”。是否可以在不更改字体的情况下强制粘贴文本和图像?

0 投票
1 回答
187 浏览

macos - 将 Automator 操作拖放到 AMWorkflowView

2010 年有人提交了一个错误: http ://www.openradar.me/7582817

实际上,如果您将自动操作从 Finder 拖放到可编辑的AMWorkflowView,它不会添加该操作,而是添加一个新的“获取指定的查找器项目”操作。

我碰巧NSTableView列出了一些可以从表格视图拖到其他视图的操作。在它的右边是一个AMWorkflowView应该是拖动目的地的地方。一切都已实现并且工作正常,除了这里也添加了“获取指定的查找器项目”操作而不是拖动操作本身。

打印AMWorkflowView's -registeredDraggedtypes输出此列表:

[“ApertureImageDataPboardType”、“CalUUIDPasteboardType”、“AlbumDataListPboardType”、“CorePasteboardFlavorType 0x6974756E”、“ABGroupsUIDsPboardType”、“CorePasteboardFlavorType 0x4F69646E”、“NSFilenamesPboardType”、“AutomatorActions”、“com.apple.Automator.RunScript.source”、“Apple URL”粘贴板类型”、“com.apple.mail.PasteboardTypeAutomator”、“ApertureFolderDataPboardType”、“NSStringPboardType”、“CorePasteboardFlavorType 0x4870666C”、“AutomatorVariables”、“ImageDataListPboardType”、“操作错误”、“ABPeopleUIDsPboardType”]

似乎“AutomatorActions”板类型是相关的,但由于缺乏文档,我无法弄清楚如何使我的应用程序工作。有什么有用的信息吗?在Apple 的 Automator 文档中找不到任何有意义的东西......并且NSPasteBoard通过归档AMBundleAction来设置数据NSKeyedArchiver也不起作用。

0 投票
1 回答
557 浏览

swift - 如何将文件夹/目录项从 NSOutlineView 拖到 Finder 或 Xcode 等应用程序中

我创建了一个大纲视图表,它显示了我的磁盘(文件系统)层次结构,类似于 Apple 的这个示例:

https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/OutlineView/Articles/UsingOutlineDataSource.html#//apple_ref/doc/uid/20000725-142693

现在我希望能够将文件/文件夹从我的大纲视图拖到其他接受 drop 的应用程序,如 Finder、Xcode、iTunes 等。这些是我为 NSou 的数据源实现的功能

我目前在控制台中收到此错误

最后这是我所拥有的截图 - NSOutlineView 显示文件系统

0 投票
1 回答
525 浏览

xcode - 复制通用NSPasteboard的完整内容

我需要将通用 NSPasteboard的完整内容复制到具有指定名称的粘贴板上。我试过这段代码:

我正在使用此代码进行检查。

因此,我使用 IWork Pages 进行了测试,它适用于文本和属性文本。但是,当我尝试使用文本和图像运行时,程序只是复制并粘贴文本。此外,我尝试仅使用图像运行,它也可以。你能告诉我如何将我的代码用于任何类型的数据吗?谢谢。