我有一个NSBox,并在NSBox内是一个NSImageView来显示占位符图片。我创建了一个自定义类,NSBox的子类,并使其接受拖动我想要的文件。但是当我拖过NSBox里面的NSImageView时,它会退出拖拽区域,我不能放下任何东西。使NSImageView和NSBox使用拖放相同的实现
我想能够告诉NSBox和NSImageView使用我的拖动实现,这样我就不必在两个不同的类之间复制和粘贴代码。
我还没找到办法做到这一点呢。
我的理解是类别只能扩展一个特定的类,所以这是行不通的。
而且当测试Composition时,我还没有发现任何可以工作的东西。
而构成已被弃用,因为我不会尝试。
我的想法是创建一个类,NSView的子类,并把所有的con放在那个类的实现中,然后尝试以某种方式在我的NSBox和NSImageView中继承那个类。就像下面的插图(当然不是实际的代码,只是为了说明我正在尝试做什么)。
@interface MyClass : NSView <NSDraggingDestination>
@end
@interface MyClassBox : NSBox (Inherit implementation from MyClass)
@end
@interface MyClassImageView : NSImageView (Inherit implementation from MyClass)
@end
谢谢,这工作得很好! – 2015-02-27 04:55:12