gpt4 book ai didi

cocoa - 如何从另一个 View 动态修改 subview ?

转载 作者:行者123 更新时间:2023-12-03 17:22:30 27 4
gpt4 key购买 nike

让我在我正在使用的程序的上下文中解释我的问题。该程序由一个主窗口组成,其中有一个 NSOutlineView 和一个 NSTabView。 NSTabViewItems(及其相应的 subview )在运行时动态添加(使用 Cmd+T)。上述 subview 是单独 XIB 文件的一部分; subview 由各种简单的输入控件组成。所有这些都按照我刚才描述的那样工作。

我希望 NSOutlineView 为其显示的各种项目提供上下文菜单,这些项目可以操作当前事件的 NSTabViewItem subview 中的某些控件。

我认为执行此操作的最明显的方法是(这只是一个简化的示例,不是我的实际代码):

NSOutlineViewSubclass.h

@interface ... : NSOutlineView
@property (weak) IBOutlet NSTabView *tabView;
@end

NSOutlineViewSubclass.m

@implementation ...
@synthesize tabView;

- (void)foo
{
NSTabViewItem *currentTab = [tabView selectedTabViewItem];
TabViewSubView *tabViewSubView = [currentTab view];

//
//Manipulate subview controls here
//
}

@end

这似乎违反了 MVC 范例,因为我直接在 View (在本例中为 NSOutlineViewSubclass)中操作数据,而不是通过 Controller 。但是,目前,我唯一一次使用 NSOutlineViewSubclassViewController 是首先为新选项卡生成一个新 View 。我的 NSOutlineViewSubclass 甚至不知道它是 NSOutlineViewSubclassViewController。我是否错过了连接这两者的步骤?

谢谢!

最佳答案

我错过了一些非常重要的事情!我没有利用 XIB 文件中非常重要的文件所有者。这使我能够在两个 XIB 之间链接并包含 View Controller 属性。

我的答案完全是从最上面的答案 here 中得出的。 (同样由提问者 Dale Dietrich 撰写)。

关于cocoa - 如何从另一个 View 动态修改 subview ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18806711/

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