我是一名开发Mac应用程序的工程师。其中一个窗口可以加载同一个NIB/XIB文件中的多个NSView对象。
但我的代码看起来像这样:
@interface TheWindowController : NSWindowController {
//Interface objects
IBOutlet NSTableView *detailsTree;
IBOutlet NSView *bigView;
IBOutlet NSView *subView1;
IBOutlet NSView *subView2;
IBOutlet NSView *subView3;
IBOutlet NSView *subView4;
IBOutlet NSView *subView5;
}
我的问题是是否可以将所有这些IBOutlets保存在数组、字典或类似的东西中。这样,将来在我的实现中,我就可以像这样做:
- (IBAction)traceTableViewClick:(id)sender {
//having now a NSArray called subviewsArray
[[[bigView subviews] objectAtIndex:0] removeFromSuperview];
[rightView addSubview: [subviewsArray objectAtIndex:[detailsTree selectedRow]]];
}
这是可能的吗?如何实现?有没有示例?
IBOutletCollection
可用吗(我只使用 iOS,所以不确定)?IBOutletCollection(NSView) NSArray *views;
。然后在界面构建器中将它们连接到集合而不是单个输出。 - Paul.sIBOutletCollection
在 Cocoa 的界面构建器中似乎无法工作,它不会显示在链接部分。但在 iOS 中非常有用。 - Can