Swift NSTableView:如果我设置;行大小样式:自动";那么所有行的大小都是0px

Swift NSTableView:如果我设置;行大小样式:自动";那么所有行的大小都是0px,swift,xcode,macos,nstableview,Swift,Xcode,Macos,Nstableview,我有一个静态视图。如果“行大小样式:自定义”(或小等): 但是如果“行大小样式:自动”(我希望动态调整行高度大小) 创建单元格的代码: extension ViewController: NSTableViewDelegate { func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { let currentO

我有一个静态视图。如果“行大小样式:自定义”(或小等):

但是如果“行大小样式:自动”(我希望动态调整行高度大小)

创建单元格的代码:

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

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


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

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