Cocoa:将子视图添加到来自不同类和 nib 的视图
Posted
技术标签:
【中文标题】Cocoa:将子视图添加到来自不同类和 nib 的视图【英文标题】:Cocoa: Adding a subview to a view from a different class and nib 【发布时间】:2011-12-23 07:19:44 【问题描述】:如果我有两个带有多个视图的 nib,有没有办法在它们之间使用 addSubview: 方法?我想做的是从其中一个 nib 中获取一个视图,并告诉它添加一个子视图,该子视图将是另一个 nib 文件中的视图。
我将它们放在单独的 nib 中的原因是因为第二个 nib 的子视图将被添加多次,使用相同的模板但参数不同。
【问题讨论】:
【参考方案1】:是的,您可以将一个 nib 中的视图作为子视图添加到另一个 nib 中的视图。
您需要创建一个 NSViewController 对象,该对象将拥有子 nib。这样一来,一旦您初始化视图控制器,与之关联的 nib 就会被加载。现在您可以使用控制器的 view 属性并将其作为子视图添加到任何其他视图。
下面的代码将帮助你更好地理解:
YourViewController.m
-(id)init
self = [super init];
if(nil != self)
[NSBundle loadNibNamed:@"myNibName" owner:self];
return self;
YourOtherClass.m
-(void)addYourViewControllerViewAsSubview
YourViewController *yvc = [[YourViewController alloc] init];
[yourOtherViewOutlet addSubview:yvc.view];
【讨论】:
以上是关于Cocoa:将子视图添加到来自不同类和 nib 的视图的主要内容,如果未能解决你的问题,请参考以下文章
IOS:如何使从 nib 文件加载的子视图可以使用它的按钮(IBAction)
Cocoa - 从 nib 加载视图并将其显示在 NSView 容器中,作为子视图