NSTableView 获取选中行
NSTableView get selected row
我有一个连接到阵列控制器的 table 视图,并且能够用数据填充 table。我希望能够 select 一行并调用一个处理程序。我试过了
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
但无法调用处理程序。
在 Objective-C 开发 Mac 应用程序。我该如何正确连接这个处理程序,或者我应该使用不同的东西?
您不会在 Mac 应用程序中使用 UIKit
,而是使用 AppKit
的 NSTableView
.
创建专栏:
NSTableColumn * column = [[NSTableColumn alloc] initWithIdentifier:@"SomeColumnId"];
column.headerCell.stringValue = NSLocalizedString(@"Column Name", nil);
[_table addTableColumn:column];
设置 table:
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return _someArray.count;
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
if ( [tableColumn.identifier isEqualToString:@"SomeColumnId"] )
{
return @"Some cell string"; // or _someArray[row][@"some_string_key"]
}
return nil;
}
-(void)tableViewSelectionDidChange:(NSNotification *)notification
{
if ( [[notification object] selectedRow] == 0 )
{
/// first row was selected.
}
}
我有一个连接到阵列控制器的 table 视图,并且能够用数据填充 table。我希望能够 select 一行并调用一个处理程序。我试过了
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;
但无法调用处理程序。
在 Objective-C 开发 Mac 应用程序。我该如何正确连接这个处理程序,或者我应该使用不同的东西?
您不会在 Mac 应用程序中使用 UIKit
,而是使用 AppKit
的 NSTableView
.
创建专栏:
NSTableColumn * column = [[NSTableColumn alloc] initWithIdentifier:@"SomeColumnId"];
column.headerCell.stringValue = NSLocalizedString(@"Column Name", nil);
[_table addTableColumn:column];
设置 table:
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
return _someArray.count;
}
- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row
{
if ( [tableColumn.identifier isEqualToString:@"SomeColumnId"] )
{
return @"Some cell string"; // or _someArray[row][@"some_string_key"]
}
return nil;
}
-(void)tableViewSelectionDidChange:(NSNotification *)notification
{
if ( [[notification object] selectedRow] == 0 )
{
/// first row was selected.
}
}