【发布时间】:2012-04-25 18:11:25
【问题描述】:
我正在开发一个 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;。然后在界面生成器中将它们连接到集合而不是单个插座 -
IBOutletCollection似乎不适用于 Cocoa 的界面构建器,它没有显示在链接部分。不过在 iOS 中超级有用。
标签: objective-c macos cocoa osx-snow-leopard