-3

NSArrayに格納されているデータをNSTableViewに送信し、1行ずつ表示する最も簡単な方法は何ですか?

例:NSArrayにはデータ[a、b、c]があります

NSTableViewに次のように言ってもらいたい:

a

b

c

NSTableViewに必要な列は1つだけです。

4

2 に答える 2

1

NSTableView に物を「送信」しません。NSTableView はあなたに何かを求めます。これは、NSTableViewDataSource プロトコルを介して行われます。そのため、必要な 2 つのメソッド (-numberOfRowsInTableView: および -tableView:objectValueForTableColumn:row:) を実装し、テーブルビューのデータ ソース アウトレットをオブジェクトに接続するだけです。

NSTableViewDataSource のドキュメントはこちら: https://developer.apple.com/DOCUMENTATION/Cocoa/Reference/ApplicationKit/Protocols/NSTableDataSource_Protocol/Reference/Reference.html

于 2013-02-19T18:09:12.770 に答える
-1

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;
}
于 2013-02-19T18:17:58.813 に答える