gpt4 book ai didi

macos - 我如何知道哪个对象正在向委托(delegate)询问信息?

转载 作者:行者123 更新时间:2023-12-03 17:48:59 24 4
gpt4 key购买 nike

在我的设计中,选择器告诉应用程序 Controller 用户希望在两个 View 中看到多少个项目以及哪种颜色。我有一个 NSView 对象描述(myView.h,myView.m), Controller 实例化两次。当用户调整选择器以更改要在 viewOne 中绘制的项目数时,App Controller 会更新该数量的本地变量,并告诉 viewOne 重新绘制自身。作为重绘本身的一部分,viewOne 需要询问委托(delegate)(App Controller)要绘制多少个项目。当通过协议(protocol)发生这种情况时,委托(delegate)通过什么机制知道是 viewOne 正在请求 qty 变量?即委托(delegate)如何知道要响应哪个变量?

diagram of my intentions

最佳答案

按照惯例,委托(delegate)/数据源调用的第一个参数是委托(delegate)的对象,例如:

- (void)applicationDidFinishLaunching:(NSApplication *)app;
- (NSTableRowView *)tableView:(NSTableView *)tableView
rowViewForRow:(NSInteger)row;

在这些方法中,apptableView 将是请求者。

您应该编写自己的委托(delegate)协议(protocol)来遵循此模式。

更多内容请参见 "Delegates and Data Sources" chapter Apple 的Objective-C 概念,尽管严格来说这与语言本身无关:它是来自 Cocoa (Touch) 框架的模式。

关于macos - 我如何知道哪个对象正在向委托(delegate)询问信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33658398/

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