gpt4 book ai didi

xcode - cocoa "view"系统是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 16:37:11 25 4
gpt4 key购买 nike

我的意思是,说真的,我根本不明白。

我正在编写这个应用程序,我需要一个侧边栏来更改窗口主要部分的内容。

我阅读了一些有关 ViewController、WindowController 等的文档。我不明白的是,这一切如何应该是“简单的”甚至是模块化的。

那么,让我们以这个例子为例。

我有这个应用程序,它由左侧的一个简单菜单和中间的主视图组成,该 View 可能包含也可能不包含子菜单(基于我们正在查看的页面)。我希望这些 View 位于同一窗口上,并且彼此独立。主屏幕应该只显示其内容,而不知道任何有关菜单、窗口等的信息。

我创建了几个 ViewController,一个用于我想要向用户显示的每个 View ,每个 View 都有其 Xib 文件,我可以在其中绘制我希望其显示的界面。

如何根据用户在左侧尺寸上选择的内容更改主视图?我不是在谈论代码本身,而是在谈论其背后的逻辑应该如何工作。

窗口 Controller 应该知道它的各个部分吗?主菜单是否应该包含主窗口以便可以更改它?我应该在主窗口中使用占位符(自定义 View )来插入其他 View 吗?

最佳答案

您希望主视图独立于菜单、窗口等,这是一个很好的愿望。当然,没有一种单一的方法可以做到这一点,但我要做的方法是让窗口 Controller 成为处理从菜单获取输入并将主视图区域切换到正确 View 的对象。

为了实际处理切换 View ,我将使用 NSTabView,它正是为此目的而制作的。您可以在 Interface Builder 中对其进行设置,以便它实际上不会绘制选项卡,对用户“不可见”,并且仅以编程方式切换选项卡。

选项卡 View 的一个难题是它本质上并不是为了在多个 View Controller 的 View 之间切换而设计的(NSViewController 是 Cocoa 历史上一个相对较新的类)。因此,您必须让窗口 Controller 保留对 View Controller 的(强)引用(即拥有它们),并根据需要将其 View 传递给选项卡 View 。我在许多应用程序中使用了这种方法,效果很好。

关于xcode - cocoa "view"系统是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17531102/

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