gpt4 book ai didi

objective-c - 在自定义 NSView 放置事件的每个实例的基础上执行某些操作

转载 作者:行者123 更新时间:2023-12-03 16:41:20 26 4
gpt4 key购买 nike

所以我的应用程序委托(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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com