gpt4 book ai didi

objective-c - 从另一个 Controller 和 Nib 加载 View

转载 作者:行者123 更新时间:2023-12-03 18:00:22 25 4
gpt4 key购买 nike

我遇到的情况是,面板加载了 View ,但是单击按钮时,我需要切换到不同 nib 文件中的 View ,并且该 View 具有不同的 Controller 。

假设我有 Foo.nib 和 Bar.nib。 Foo.nib 是一个面板和 View ,Bar.nib 只是一个 View 。在 FooController 中我有一行类似:

[NSBundle loadNibNamed:@"Foo" owner:self];

但我想我还需要:

[NSBundle loadNibNamed:@"Bar" owner:BarController];

当单击按钮时,我会切换 FooController 中的 View ,但 BarController 不会处理所有 BarController GUI 元素。这是正确的想法吗?如果是这样,即使 BarController 位于 Foo Nib 中,我也无法加载 Bar Nib 。

最佳答案

您可能想要制作 3 个 nib 文件:一个用于 Panel、Foo 和 Bar。然后你可以创建 NSViewController 的 FooController 和 BarController 子类并像这样创建它们

FooController *fooController = [[FooController alloc] initWithNibName:@"Foo" bundle:nil];
BarController *barController = [[BarController alloc] initWithNibName:@"Bar" bundle:nil];

每当您需要将 View 放置在面板中时,您都可以这样做

NSView *fooView = [fooController view];
[panelView addSubview:fooView];

或者您可以使用replaceSubview:with: 交换 View

有一个更完整的示例 here

关于objective-c - 从另一个 Controller 和 Nib 加载 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7339923/

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