我正在尝试创建包含基于 View 的TableViews的视图,即:NSOutlineView,并希望更好地理解在IB中建立的正确连接。
目前,我已经创建了一个分配了AppDelegate的MainWindow。
除此之外,我还介绍了一个最终有一个数组作为数据源的NSOutlineView。
我想有一个单独的Controller来照顾它及其子视图。
NSOutlineView由以下内容组成:
使用我的NSTableCellView,我添加了两个NSTextFields,最上面的一个将用作Title,第二个是mini,将用于显示描述。
我面临的问题是需要将IBOutlet与其连接的控件。
我的逻辑是;唯一会显示更改的控件是NSTableView,因为TableColumn中需要一个单独的TableView,它将是数组中item.count的结果。
其次,我假设IBOutlet需要指向TableViewCell中的每个TextField,这将允许它们为数组中的每个item.count显示正确的信息。
所以,我需要做的就是设计一个具有三个 IBOutlets的控制器。
我的基础知识是否正确......或者我是否偏离轨道?
答案 0 :(得分:1)
我没有得到您要求的所有内容,但首先您没有为NSTableView
设置出口,需要使用NSArrayController
,KVC和绑定。
1)在AppDelegate.h中为IBOutlet
创建NSArrayController
:
@interface AppDelegate : NSObject <NSApplicationDelegate>
{
IBOutlet NSArrayController *yourArrayController;
}
2)在AppDelegate.m中输入您的输入或其他内容NSArrayController
:
yourItem *newItem = [[yourItem alloc] init];
[newItem setValue:[_inputVar stringValue] forKey:@"name"]; //use Key Value Coding
...
[yourArrayController addObject:newItem];
3)现在转到.xib并在停靠栏中绘制一个NSArrayController
对象(带有3个蓝色立方体的绿色气泡)(留给.xib的区域)。
4)在您的tableview中,每行单击三次,然后打开Bindings inspector
5)转到“值”并激活“绑定到”,选择yourArrayController
6)将Controller Key
设置为“arrangeObjects”
7)在Model Key Path
为每个tableview列执行此操作,基本上你应该没问题。从控制器到IBOutlet
没有NSTableView
!
NSArrayController
正在关注用户输入和来自您的桌面视图,非常方便。我知道不回答你的所有问题,但它可能会帮助你开始。祝你好运!