【问题标题】:Implementation of NSURL/File QuickLook Preview & NSURL/File draggingNSURL/File QuickLook Preview & NSURL/File 拖拽的实现
【发布时间】:2018-01-11 03:44:46
【问题描述】:

我有一个文件(比方说是 PDF),已存储到我的 macos Cocoa 应用程序的磁盘中。我有包含此文件路径的 NSURL。

我目前正在使用 NSView 向用户展示此文件存在,其中包含显示文件名的标签和 NSImageView,显示文件的图标(使用 NSWorkspace.shared.icon(forFile:url.path))。

我的问题是,我怎样才能允许用户“选择”或“突出显示”这个 NSView,并且当点击空格键时会弹出该特定文件的 QuickLook 预览。

此外,我如何让 NSView 可拖动,最终结果是能够将 NSView 拖动到 Finder 窗口并将文件复制到拖动的目的地。

对于 QuickLook 和拖动功能,我浏览了 Apple 文档,但没有找到任何准确描述我所追求的内容的内容。

【问题讨论】:

    标签: swift macos cocoa nsview quicklook


    【解决方案1】:

    对于“选择”视图,您应该让视图接受第一响应者,并在视图是第一响应者时绘制焦点环(或任何适合您的突出显示)。覆盖 acceptsFirstResponder(返回 true)、becomeFirstResponderresignFirstResponder(保留一个标志以判断视图是否是第一响应者,并使用 setNeedsDisplay 或任何适当的方式触发绘制)和绘制机制(drawRect 或如果您使用的是 CALayers,则可以使用任何合适的方法)。

    覆盖 keyDown 以处理空格键。

    覆盖 mouseDragged 并启动一个拖动会话,然后简单地创建一个 NSDraggingItem,其中 pasteboardWriterNSURL 本身。

    用于显示 QuickLook:QLPreviewPanelhttps://developer.apple.com/documentation/quartz/qlpreviewpanel

    【讨论】:

      猜你喜欢
      • 2011-03-04
      • 2013-01-28
      • 2011-11-29
      • 1970-01-01
      • 1970-01-01
      • 2013-08-02
      • 2013-01-25
      • 1970-01-01
      • 2012-04-05
      相关资源
      最近更新 更多