什么是TableView中的受控制?

时间:2013-02-20 23:51:12

标签: objective-c xcode cocoa

我正在尝试创建包含基于 View 的TableViews的视图,即:NSOutlineView,并希望更好地理解在IB中建立的正确连接。

目前,我已经创建了一个分配了AppDelegate的MainWindow。

除此之外,我还介绍了一个最终有一个数组作为数据源的NSOutlineView。

我想有一个单独的Controller来照顾它及其子视图。

NSOutlineView由以下内容组成:

  • NSTableColumn
  • NSTableViewCell
  • 的NSTextField

使用我的NSTableCellView,我添加了两个NSTextFields,最上面的一个将用作Title,第二个是mini,将用于显示描述。

我面临的问题是需要将IBOutlet与其连接的控件。

我的逻辑是;唯一会显示更改的控件是NSTableView,因为TableColumn中需要一个单独的TableView,它将是数组中item.count的结果。

其次,我假设IBOutlet需要指向TableViewCell中的每个TextField,这将允许它们为数组中的每个item.count显示正确的信息。

所以,我需要做的就是设计一个具有三个 IBOutlets的控制器。

我的基础知识是否正确......或者我是否偏离轨道?

1 个答案:

答案 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正在关注用户输入和来自您的桌面视图,非常方便。我知道不回答你的所有问题,但它可能会帮助你开始。祝你好运!