首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTableView分组

NSTableView分组
EN

Stack Overflow用户
提问于 2016-08-24 13:30:44
回答 1查看 2.1K关注 0票数 0

我正在尝试将组添加到我的NSTableView中。我发现这个功能:

代码语言:javascript
复制
func tableView(tableView: NSTableView, isGroupRow row: Int) -> Bool
{
    if (row == 5)
    {
        return true;
    }

    return false;
}

效果很好。第5行是后面的一个组。但我不知道该怎么增加一个标题呢?

我使用的是自定义视图:

代码语言:javascript
复制
func tableView(tableView: NSTableView, viewForTableColumn tableColumn: NSTableColumn?, row: Int) -> NSView?
{
    if (row == 5)
    {
        ??????
    }

    let result : CellViewCustom = tableView.makeViewWithIdentifier(tableColumn!.identifier, owner: self) as! CellViewCustom

    ...

    return result
}

但是在第5行,上面写着tableColumn == nil

如何向组标题添加文本?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-24 14:23:50

与iOS不同,NSTableView的组单元在(非嵌套的)数据源数组中是“内联”的。

简单示例

  • 带有属性ItemtitleisGroup的自定义结构isGroup。所有title不是空的实例都是组行。 结构项目{ let name,title : String let isGroup : Bool init(名称: String,title : String = "") { self.name = name self.title = title self.isGroup = !title.isEmpty }
  • 创建数据源数组并分配2组和3行正常行 变量= Item ..。条目=项目(名称:“”,标题:“第1组”),项目(名称:“bar”),项目(名称:“baz”),项目(名称:“”,标题:“第2组”),项目(名称:“zab”)
  • isGroupRow中,只返回属性值 func tableView(tableView: NSTableView,isGroupRow行: Int) -> Bool {返回itemsrow.isGroup }
  • viewForTableColumn中,为组和表行创建两个不同的视图 func tableView(tableView: NSTableView,viewForTableColumn tableColumn: NSTableColumn?,row: Int) -> NSView?{如果item.isGroup { let groupCell = tableView.makeViewWithIdentifier("GroupCell",owner:self) as!NSTableCellView groupCell.textField!.stringValue = item.title返回单元}.stringValue{让单元格=groupCell.textField所有者: self) as!CellViewCustom ...返回单元}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39124756

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档