0

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

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

最重要的是,我介绍了一个 NSOutlineView,它最终有一个数组作为它的数据源。

我想有一个单独的控制器来照顾这个及其子视图。

NSOutlineView 由以下部分组成:

  • NSTableColumn
  • NSTableViewCell
  • NSTextField

在我的 NSTableCellView 中,我添加了两个 NSTextField,顶部的一个将用作标题,第二个是迷你型,用于显示描述。

我面临的问题是控件需要连接一个 IBOutlet。

我的逻辑是;唯一会发生变化的控件是 NSTableView,因为 TableColumn 中需要有一个单独的 TableView,这将是数组中 item.count 的结果。

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

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

我的基础知识是否正确……还是我偏离了轨道?

4

1 回答 1

1

我没有得到你所要求的一切,但首先你没有为你设置出口,NSTableView你需要使用 a NSArrayController、 KVC 和绑定。

IBOutlet1)在您的 AppDelegate.h 中为您创建一个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在 Dock(.xib 左侧的区域)中绘制一个对象(带有 3 个蓝色立方体的绿色气泡)。

4)在您的表格视图中,在每一行单击三下并打开Bindings inspector

5)转到“值”并激活“绑定到”,选择yourArrayController

6)设置Controller Key为“arrangedObjects”

7) 写入适当的密钥Model Key Path

对每个 tableview 列执行此操作,基本上你应该没问题。没有IBOutlet从控制器给你NSTableView

NSArrayController正在处理用户在您的表格视图中来回输入的信息,这非常方便。我知道不能回答你所有的问题,但它可能会帮助你开始。祝你好运!

于 2013-03-06T23:15:34.343 回答