我有一个注册了拖动操作的NSView。
在该视图中,我有一个子类NSScrollView,它本身有一个NSImageView。
当拖动到原始的NSView上时,一切都很好,除了当我拖过前面提到的NSImageView时,它似乎插入了拖拽而我不能掉到它上面(或者实际上是它下面的视图。
NSScrollView似乎忽略了拖动并允许它进入底层的NSView,但我怎么能为NSImageView做到这一点,以便拖放注册自己,它的superview(NSScrollView)和底层的NSView。
答案 0 :(得分:41)
您可以取消注册NSImageView作为拖动目标。然后它的superview将处理拖动会话,如果它设置为这样做。
[imageView unregisterDraggedTypes];
答案 1 :(得分:1)
哦,非常感谢@Steven!
Swift 4.2 和@IBOutlets
:
@IBOutlet private weak var imageView: NSImageView! {
didSet {
imageView.unregisterDraggedTypes()
}
}
长话:
我有这个NSCollectionView
,它从NSCollectionViewItem
文件中加载了自定义XIB
。
该集合接受放置操作(collectionView.registerForDraggedTypes([.fileURL])
)。
但是,一旦有东西放进去,并且自定义单元格被“ 出队”(makeItem(withIdentifier:for:)
)了,放置操作就停止了在该特定单元格之上的工作。
unregisterDraggedTypes()
确实解决了该问题。