【发布时间】:2023-03-28 06:00:01
【问题描述】:
我正在努力了解如何访问要在 tableview 中显示的模型数据,以及如何将这些数据从我的应用程序的另一部分提供给视图控制器。我认为当保存数据的 MSMutableArray 是表视图控制器接口的一部分时,我对表视图的工作方式有了很好的理解。当我想显示的数据在其他地方初始化时,我开始变得有些困惑。
在我的应用程序中,我最终希望在表格视图中显示的数据是从 XML 文件中读取和处理的。对于这个问题,它看起来像这样:
//
// bunchOfData.h
//
@interface bunchOfData : NSObject
@property (strong) Profile *overview;
@property (strong) NSMutableArray *info;
@end
数据挂在“bunchOfData”中,并在整个应用程序中用于各种任务。
我提供了一个菜单,允许用户在包含表格视图的新窗口中显示来自“信息”MSMutableArray 的数据。菜单是在故事板中定义的,包含 NSTableView 的窗口也是如此,并且我已经按照您的预期将菜单项的 segue 连接到窗口。
这是表格视图控制器的标题:
//
// TableViewController.h
//
@interface TableViewController : NSViewController <NSTableViewDataSource> {
@private
IBOutlet NSTableView *tableView;
bunchOfData *data;
}
@end
来源:
@implementation TableViewController
- (id)init
{
self = [super init];
if (self)
data = // Hmmm.... I'd like to assign 'info' to this
return (self);
}
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return [data.info count];
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {
:
:
return [value for the object in the table];
}
@end
现在,如果我有点迷茫,是如何获取对 bundleOfData.h 中的“信息”数组的引用到我的表视图控制器(如源文件中的“数据 =”占位符所指出的那样。
当包含表格视图的窗口被通过情节提要连接到窗口的菜单打开时,如何使用对 bundleOfData 中数据的引用来初始化表格视图控制器?故事板似乎隐藏了很多必要的细节,我不确定如何找到这些细节。
谢谢!
【问题讨论】:
标签: objective-c xcode macos cocoa nstableview