gpt4 book ai didi

objective-c - Cocoa MVC 和充当 NSResponders 的 NSView

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

我会先说我对整个编程场景非常陌生。尽管如此,我在我的第一个 OS X 应用程序(一个简单的“Paint”风格应用程序)中取得了一些进展。然而,在阅读基于文档的编程指南后,我留下了一些问题。

我当前的设置是“通过”我的自定义对象传递变量以到达其目的地。例如我有我的自定义 View ,它创建一个自定义 Controller 并将指向其自身的指针传递给它。然后 Controller 创建一个数据模型并将 View 的引用传递给数据对象。但是,如果更高层的对象需要该数据,我需要有一个方法和通知系统来使其返回。此外,随着越来越多的对象指向变量,确保变量中的数据处于正确状态也变得越来越困难。

我想创建一个更水平的设置,但我有一个问题:如何将 NSView 的 NSResponder 方法收集的数据获取到更高级别拥有的数据对象(这是正确的术语吗?) Controller ?我注释的文档 SDK 指南中的下图说明了我对推荐设置的问题: enter image description here

我知道我做错了很多事情,但我很难弄清楚如何以“正确”的方式去做。有人可以告诉我如何正确地将 View 中的输入封装在数据对象中吗?

最佳答案

我不确定我是否正确理解了你的问题,但我想答案通常是:你不这样做。

当 View 获得输入时, Controller 会收到通知。这可能是通过委托(delegate)观察实现的,但在大多数情况下是通过目标操作实现的。此时响应者链不是焦点,它在后台工作。

Controller 还负责对其实例化和处理的模型进行所有更改。

在您的示例中,NSDocument 将为您执行一些数据模型操作,但并非每个应用程序都使用 NSDocument。

另一个方向通常通过导出工作,其中 Controller 填充用户界面可能需要的所有数据。在基于 NSDocument 的应用程序中,NSDocument 的子类通常会充当 Controller 的一部分。

关于objective-c - Cocoa MVC 和充当 NSResponders 的 NSView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186255/

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