2017-06-10 10 views
0

添付の画像を参照してください。 enter image description hereスイフト3テーブルの列の幅最後の列が機能しない

何らかの理由で最後の列が常に幅が短いことに注意してください。私は私の人生のために、これをどうやって修正するかを考え出すことができないのですか?

私のコントローラのコードです。

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

NSTableColumnresizingMaskNSTableViewプロパティcolumnAutoresizingStyleを持っている特性を有しています。どちらもIBまたはコードで設定できます。列があなたの望むように動作するように構成を解説します。 IBのテーブルビューのデフォルトの列サイズは「最終列のみ」で、「なし」に切り替えると問題が解決されます。

もう1つの解決策は、列の設定minWidthです。

+0

私はこれを試してみましょう。 –

+0

おかげさまで、このような設定はトリック、self.theTableview?.columnAutoresizingStyle = .noColumnAutoresizing –

関連する問題