将存储在 NSArray 中的数据发送到 NSTableView 并逐行显示的最简单方法是什么?
例如:NSArray 有数据 [a, b, c]
我想让 NSTableView 说:
一种
b
C
NSTableView 只需要 1 列。
将存储在 NSArray 中的数据发送到 NSTableView 并逐行显示的最简单方法是什么?
例如:NSArray 有数据 [a, b, c]
我想让 NSTableView 说:
一种
b
C
NSTableView 只需要 1 列。
你不会“发送”东西给 NSTableView。NSTableView 向您询问事情。它通过 NSTableViewDataSource 协议实现。因此,您需要做的就是实现其中的两个必需方法(-numberOfRowsInTableView: 和 -tableView:objectValueForTableColumn:row:),并将 tableview 的数据源出口连接到您的对象。
NSTableViewDataSource 的文档在这里:https ://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Protocols/NSTableDataSource_Protocol/Reference/Reference.html
您需要探索 UITableViewDelegate 和 UiTableViewDataSource 委托方法:
#pragma mark --- Table View Delegate Methods ----------------------------
//Handles the selection of a cell in a table view
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[tableView deselectRowAtIndexPath:indexPath animated:YES];
}
//Defines the number of sections in a table view
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
return 1;
}
//Defines the header of the section in the table view
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section
{
return nil;
}
//Defines the number of rows in each section
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
return 1;
}
//Defines the content of the table view cells
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
}
cell.textLabel.text = [myDataArray objectAtIndex:[indexPath row]];//<-pay attention to this line
return cell;
}