Swift 3表格列宽最后一列不起作用

时间:2017-06-10 07:24:20

标签: macos swift3 xcode8 desktop-application nstableview

请参阅我的附图。 enter image description here

请注意,由于某种原因,最后一列的宽度总是很短。我无法解释为什么或如何解决这个问题?

这是我的控制器的代码。

import Cocoa

class ViewController: NSViewController, NSTableViewDelegate, NSTableViewDataSource {

    @IBOutlet weak var theTableview: NSTableView!

    var data:NSArray = [""] //@JA - This is used

    override func viewDidLoad() {
        super.viewDidLoad()

        //First remove all columns
        let columns = self.theTableview.tableColumns
        columns.forEach {
            self.theTableview.removeTableColumn($0)
        }

        //self.theTableview?.columnAutoresizingStyle = .sequentialColumnAutoresizingStyle

        for index in 0...100 {
            let column = NSTableColumn(identifier: "defaultheader")
            if(index != 0){
                column.title = "Month \(index)"
            }else{
                column.title = "Factors"
            }

            self.theTableview.addTableColumn(column)
        }



        // Do any additional setup after loading the view.
        data = ["Group 1","Group 2","Group 3","Group 4"]

        self.theTableview.reloadData()
    }

    override var representedObject: Any? {
        didSet {
        // Update the view, if already loaded.
        }
    }

    func numberOfRows(in tableView: NSTableView) -> Int {
        return data.count
    }

    func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? {
        if let cell = tableView.make(withIdentifier: "defaultcell", owner: nil) as? NSTableCellView {
            cell.textField?.stringValue = data.object(at: row) as! String
            return cell
        }
        return nil
    }

    @IBAction func startsimulation(_ sender: NSButton) {
        //Recalculates the data variable for updating the table.

        data = ["group1","group2"]

        theTableview.reloadData()
    }

}

0 个答案:

没有答案