【问题标题】:NSTableView: If i set "Row size style : Automatic " then all row have 0px sizeNSTableView:如果我设置“行大小样式:自动”,那么所有行都有 0px 大小
【发布时间】:2020-03-30 03:11:51
【问题描述】:

我有 NSTableView。如果“行大小样式:自定义”(或小等):

但如果“行大小样式:自动”(我想要动态调整行高大小)

创建单元格代码:

    extension ViewController: NSTableViewDelegate {
    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
        let currentOption = options[row] //options is Array of dictionaries

        if tableColumn?.identifier == NSUserInterfaceItemIdentifier(rawValue: "short") {
            let cellIdentifier = NSUserInterfaceItemIdentifier(rawValue: "shortCell")
            guard let cellView = tableView.makeView(withIdentifier: cellIdentifier, owner: self) as? NSTableCellView else { return nil }
            cellView.textField?.stringValue = currentOption["short"]!
            print(cellView.fittingSize.height)
            return cellView
        } else  if tableColumn?.identifier == NSUserInterfaceItemIdentifier(rawValue: "long") {
            let cellIdentifier = NSUserInterfaceItemIdentifier(rawValue: "longCell")
            guard let cellView = tableView.makeView(withIdentifier: cellIdentifier, owner: self) as? NSTableCellView else { return nil }
            cellView.textField?.stringValue = currentOption["long"]!
            return cellView
        }
        return nil
    }
}

【问题讨论】:

    标签: swift xcode macos nstableview


    【解决方案1】:

    确保您的自动布局具有顶部和底部约束。

    例如垂直放置object1、object2、object3,确保object 1固定到superview的安全区域/顶部,object3固定到superview的安全区域/底部。

    【讨论】:

      【解决方案2】:

      您有自动布局问题。正确检查您的约束。

      【讨论】:

        猜你喜欢
        • 2016-01-10
        • 1970-01-01
        • 2012-11-06
        • 1970-01-01
        • 2016-04-07
        • 2012-03-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多