拖放后避免 NSImageView 更改图像

avoid the NSImageView change the image after drag & drop

我已经为 NSImageView 编写了拖放代码,并将 NSImageView 设置为 PDF/image 文件放置区。但是我发现一旦文件被删除,NSImageView 就会显示删除的文件内容和图像。我怎样才能避免这种情况?我希望 NSImageView 显示我在应用程序启动时设置的默认图像。我也尝试添加此代码但不起作用:

[imgView setImage:[NSImage imageNamed:@"default.jpg"]];
  1. 创建 ImageView 的子类。如果 drawRect:(NSRect)rect 方法在其实现文件中存在,则将其移除。你不需要它。

  1. 单击右侧边栏的身份检查器选项卡。然后在选择一个imageView控件后输入你的imageView子类的名称,你可能已经完成了。

  2. 单击边栏的属性检查器选项卡。 Select 您的 imageView 控件,然后在顶部组合框中输入背景图片的名称。

处理数据后,您可以像这样清除NSDraggingInfo

override func performDragOperation(_ sender: NSDraggingInfo) -> Bool {
    // process your data form NSDraggingInfo

    // and clearContents   
    sender.draggingPasteboard().clearContents()

    return true 
}

子类 NSImageView 并实现以下方法。
默认情况下,使用 draggingInfo 设置新图像是从 concludeDragOperation 完成的。

override func concludeDragOperation(_ sender: NSDraggingInfo?) {
    return
}