gpt4 book ai didi

objective-c - TableView 中控制什么?

转载 作者:行者123 更新时间:2023-12-03 17:55:04 24 4
gpt4 key购买 nike

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

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

除此之外,我还引入了一个 NSOutlineView,它最终有一个数组作为其数据源。

我想要一个单独的 Controller 来管理它及其 subview 。

NSOutlineView 由以下部分组成:

  • NSTableColumn
  • NSTableViewCell
  • NSTextField

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

我面临的问题是哪些控件需要连接 IBOutlet。

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

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

所以,我需要做的就是设计一个具有三个 IBOutlet 的 Controller 。

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

最佳答案

我没有得到你所要求的一切,但首先你没有为你的NSTableView设置导出,你需要使用NSArrayController,KVC和绑定(bind).

1) 在 AppDelegate.h 中为您的 NSArrayController 创建一个 IBOutlet:

@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 并在扩展坞(.xib 左侧的区域)中绘制一个 NSArrayController 对象(带有 3 个蓝色立方体的绿色气泡)。

4) 在表格 View 中,每行单击三次,然后打开绑定(bind)检查器

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

6) 将Controller Key 设置为“arrangedObjects”

7) 在模型 key 路径中写入适当的 key

对每个 TableView 列执行此操作,基本上应该没问题。 Controller 没有 IBOutlet 到您的 NSTableView!

NSArrayController 负责处理来自 tableview 的用户输入,这非常方便。我知道不能回答您所有的问题,但它可能会帮助您开始。祝你好运!

关于objective-c - TableView 中控制什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14992164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com