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