我有一个文件(让我们说一个PDF)我已经存储在我的macos Cocoa应用程序上的磁盘上。我有NSURL,其中包含此文件的路径。
我目前正在使用NSView显示该文件存在,该NSView包含显示文件名的标签,以及显示文件图标的NSImageView(使用NSWorkspace.shared.icon(forFile:url)。路径))。
我的问题是,如何让用户选择'或者突出显示'这个NSView,当点击空格键时,会弹出特定文件的QuickLook预览。
此外,我如何使NSView可以拖动,最终结果是能够将NSView拖动到Finder窗口并将文件复制到拖动的目标。
对于QuickLook和拖动功能,我已经浏览了Apple文档,但没有找到任何准确描述我之后的内容。
答案 0 :(得分:1)
对于"选择"在视图为第一响应者时,您应该让视图接受第一响应者,并绘制一个焦点环(或适合您的任何突出显示)。覆盖acceptsFirstResponder
(返回true),becomeFirstResponder
和resignFirstResponder
(保留视图是否为第一响应者的标志,并使用setNeedsDisplay
或适当的任何内容触发绘图),以及绘图机制(drawRect
或者如果您正在使用CALayers,则适用于任何内容。)
覆盖keyDown
以处理空格键。
覆盖mouseDragged
并启动拖动会话,只需创建一个NSDraggingItem
,pasteboardWriter
为NSURL
本身。
用于显示QuickLook:QLPreviewPanel
https://developer.apple.com/documentation/quartz/qlpreviewpanel