【问题标题】:NSTableView Multiple Row TypesNSTableView 多行类型
【发布时间】:2013-09-11 20:56:16
【问题描述】:

我正在尝试创建一个作业计划应用程序,该应用程序在基于视图的 NSTableView 中具有两种类型的 TableCellViews。一种类型是一个窄条,仅带有以下作业主题的标签,另一种类型是输入作业项目的行。 (我将在下面附上截图。)

我的问题是:在 TableView 中创建新行时,如何指定要创建的行类型?我假设它与标识符有关,但我找不到任何有关如何以这种方式使用它们的信息。

这基本上是它的样子:

【问题讨论】:

    标签: objective-c macos cocoa nstableview


    【解决方案1】:

    您在标识符的正确轨道上。以下是您如何使用它们。

    首先使用您的特定行类型设置您的 NSTableView(您可能已经这样做了)。在下面的屏幕截图中,我制作了一行带有标题和描述,另一行带有几个按钮。

    接下来,您需要设置所需的标识符。单击 Interface Builder 中的第一行并选择 Identity Inspector。为您的第一行选择一个唯一标识符。对其他人也这样做。

    最后,在您的实现中,使用以下代码创建一个特定类型的新行:

    TableViewController.m

    #pragma mark - NSTableViewDelegate
    
    - (NSView *)tableView:(NSTableView *)tableView
       viewForTableColumn:(NSTableColumn *)tableColumn
                      row:(NSInteger)row {
    
      NSTableCellView *cell;
    
      if(someCondition == YES) {
        cell = [self.tableView makeViewWithIdentifier:@"ButtonRow" owner:self];
      } else {
        cell = [self.tableView makeViewWithIdentifier:@"TitleDescriptionRow" owner:self];
      }
    
      return cell;
    }
    

    如果您正在寻找更深入的教程,请查看 Cocoa Programming L51 - View-Based NSTableView(YouTube 视频,不是我制作的)。

    【讨论】:

      猜你喜欢
      • 2011-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      相关资源
      最近更新 更多