所以我的应用程序委托中有两个自定义NSView的实例
@property (assign) IBOutlet SYDropView *sourceView;
@property (assign) IBOutlet SYDropView *destView;
SYDropView有一个
currPath
ivar,当在其上放置文件夹时,它会更新,这很好用。现在,如果我想做一些额外的事情,例如更新标签,这取决于更改了SYDropView,如何区分实例以检查sourceView或destView是否已更改?我需要知道更改了哪个标签,以便可以更新适当的标签。我是否可以在发送时将发件人传递给应用程序委托,并对此进行处理?
最佳答案
我建议使用这样的方法编写一个协议,为您的SYDropView
定义一个委托:
@protocol SYDropViewDelegate
- (void) folderDroppedOnView: (SYDropView*) view;
@end
删除文件夹后,应从
SYDropView
调用此方法,以便可以识别哪个视图注意到了该事件。要轻松设置视图的委托,您可以覆盖设置器:
- (void) setSourceView: (SYDropView*) sourceView {
_sourceView= sourceView;
_sourceView.delegate= self;
}
与
setDestView
相同。关于objective-c - 在每个实例的基础上自定义NSView drop事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20733347/