【发布时间】:2017-07-17 13:00:26
【问题描述】:
由于 NSGridView 在 Interfacebuilder 中不可用,我尝试以编程方式创建一个。 我试过这样:
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
let lb1 = NSTextField(labelWithString: "Label1")
let lb2 = NSTextField(labelWithString: "Label2")
let lb3 = NSTextField(labelWithString: "Label3")
let lb4 = NSTextField(labelWithString: "Label4")
let lb5 = NSTextField(labelWithString: "Label 5 long text ...")
let bu = NSButton(title: "Button", target: nil, action: nil)
let empty = NSGridCell.emptyContentView
let gridView = NSGridView(views:
[
[empty, lb1],
[empty, lb2],
[lb3, lb4],
[lb5],
[bu],
])
self.view.addSubview(gridView)
}
但我只得到一个 blanc Window - 出了什么问题?
【问题讨论】:
-
gridView的框架是什么? -
添加:gridView.frame = self.view.frame //似乎工作
-
为什么需要设置frame?在 NSStackview 中,我认为不是。
-
我认为
NSStackview会自动调整大小以适应子视图,而NSGridView不会。