拖放后避免 NSImageView 更改图像
avoid the NSImageView change the image after drag & drop
我已经为 NSImageView 编写了拖放代码,并将 NSImageView 设置为 PDF/image 文件放置区。但是我发现一旦文件被删除,NSImageView 就会显示删除的文件内容和图像。我怎样才能避免这种情况?我希望 NSImageView 显示我在应用程序启动时设置的默认图像。我也尝试添加此代码但不起作用:
[imgView setImage:[NSImage imageNamed:@"default.jpg"]];
- 创建 ImageView 的子类。如果 drawRect:(NSRect)rect 方法在其实现文件中存在,则将其移除。你不需要它。
单击右侧边栏的身份检查器选项卡。然后在选择一个imageView控件后输入你的imageView子类的名称,你可能已经完成了。
单击边栏的属性检查器选项卡。 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
}
我已经为 NSImageView 编写了拖放代码,并将 NSImageView 设置为 PDF/image 文件放置区。但是我发现一旦文件被删除,NSImageView 就会显示删除的文件内容和图像。我怎样才能避免这种情况?我希望 NSImageView 显示我在应用程序启动时设置的默认图像。我也尝试添加此代码但不起作用:
[imgView setImage:[NSImage imageNamed:@"default.jpg"]];
- 创建 ImageView 的子类。如果 drawRect:(NSRect)rect 方法在其实现文件中存在,则将其移除。你不需要它。
单击右侧边栏的身份检查器选项卡。然后在选择一个imageView控件后输入你的imageView子类的名称,你可能已经完成了。
单击边栏的属性检查器选项卡。 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
}