带编码锚点的NSViewController故事板折叠窗口

时间:2016-09-07 14:29:18

标签: swift cocoa autolayout

我在Cocoa + Swift中混淆故事板和编码自动布局时遇到了麻烦。它可能是对的吗?

我开始使用故事板中定义的NSTabViewController,默认设置被拖出工具箱。我通过代码添加了NSTextField视图。我添加了锚点。除了底部锚点之外,一切都按预期工作。

添加底部锚点后,窗口和控制器似乎会折叠到NSTextField的大小。我期望相反,文本字段被拉伸以填充窗口的高度。

我做错了什么?文字框架可能吗?或者我没有设置的一些选项标志?

class NSTabViewController : WSTabViewController {

var summaryView : NSTextField

required init?(coder: NSCoder) {
    summaryView = NSTextField(frame: NSMakeRect(20,20,200,40))
    summaryView.font = NSFont(name: "Menlo", size: 9)
    super.init(coder: coder)
}

override func viewDidLoad() {
    self.view.addSubview(summaryView)
    summaryView.translatesAutoresizingMaskIntoConstraints = false
    summaryView.topAnchor.constraintEqualToAnchor(self.view.topAnchor, constant: 5).active = true
    summaryView.leftAnchor.constraintEqualToAnchor(self.view.leftAnchor, constant: 5).active = true
    summaryView.rightAnchor.constraintEqualToAnchor(self.view.rightAnchor, constant: -5).active = true
    summaryView.bottomAnchor.constraintEqualToAnchor(self.view.bottomAnchor, constant: -5).active = true
}

1 个答案:

答案 0 :(得分:0)

为防止窗口折叠设置较低的拥抱优先级:

 summaryView.setContentHuggingPriority(249, forOrientation: .Vertical)

但是你实际上误用了标签视图控制器。它只管理常用的视图...同时将文本添加到选项卡标题区域。有一个非常好的教程如何正确使用它:https://www.youtube.com/watch?v=TS4H3WvIwpY