【问题标题】:NSTableView get selected rowNSTableView 获取选定的行
【发布时间】:2018-07-26 15:41:05
【问题描述】:

我有一个连接到数组控制器的表格视图,并且能够用数据填充表格。我希望能够选择一行并调用一个处理程序。我试过了

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath;

但我无法调用处理程序。

使用 Objective-C 开发 Mac 应用程序。如何正确连接这个处理程序,或者我应该使用不同的东西?

【问题讨论】:

标签: objective-c macos uitableview nsarraycontroller


【解决方案1】:

您不会在 Mac 应用程序中使用UIKit,而是使用AppKitNSTableView

创建列:

NSTableColumn * column = [[NSTableColumn alloc] initWithIdentifier:@"SomeColumnId"];
column.headerCell.stringValue = NSLocalizedString(@"Column Name", nil);
[_table addTableColumn:column];

摆桌:

- (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. 
    }
}

【讨论】:

  • 明白...我仍然想念如何将我的表或数组控制器连接到这个委托。我该怎么做?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多