【问题标题】:Create NSTableView using Storyboard使用 Storyboard 创建 NSTableView
【发布时间】:2014-12-16 20:00:20
【问题描述】:

我使用故事板的步骤

  1. 使用情节提要创建 Mac Cocoa 应用程序。将表格视图从右侧边栏中拖到故事板上。
  2. 让预先存在的 ViewController 遵循NSTableViewDataSource 协议。在ViewController.m 中实现两个方法:numberOfRowsInTableView: 返回 10 和 tableView:objectValueForTableColumn:row: 返回 @"321"。
  3. 在 storyboard 中,将 Table View 的委托和数据源连接到(唯一的)View Controller。

问题

每个单元格都显示“表格视图单元格”而不是我要填充的数据。尽管如此,tableView:objectValueForTableColumn:row: 确实被调用了 10 次。

使用 .xib 的替代方法

https://www.youtube.com/watch?v=p5U94-uRCOo

  1. 使用 .xib 而不是 .storyboard。将表格视图从右侧边栏中拖到故事板上。
  2. 创建一个遵循NSTableViewDataSource 协议的类MyTableViewController。实现相同的两种方法。
  3. 在 xib 中,将新对象拖到对象上。将其类更改为 MyTableViewController 并将对象连接到表视图的数据源。

【问题讨论】:

    标签: objective-c cocoa nstableview


    【解决方案1】:

    您的表格视图需要基于单元格而不是基于视图。掠夺documentation

    tableView:objectValueForTableColumn:row: 用于基于单元格的表格和

    - (NSView *)tableView:(NSTableView *)tableView viewForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row 用于基于视图的表视图。

    【讨论】:

    • 哈,非常感谢你,伙计!有人告诉我,基于视图的单元格在某些方面更胜一筹,所以我使用了它们。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    相关资源
    最近更新 更多