调整NSWindow的大小不会正确自动调整其contentView

时间:2018-05-06 17:52:34

标签: swift macos-sierra

我有一个NSWindow,它的内容是ViewView。在awakeFromNib()的{​​{1}}中,我有以下代码:

NSWindow

我正在尝试在中心设置override func awakeFromNib() { super.awakeFromNib() /// Customize Window through XIBs self.title = "Main Window" let screenFrame = NSScreen.main?.frame let windowPercentage: CGFloat = 0.9; let offset: CGFloat = (1.0 - windowPercentage) / 2.0; let windowFrame: NSRect = NSRect(x: (screenFrame?.width)! * offset, y: (screenFrame?.height)! * offset, width: (screenFrame?.width)! * windowPercentage, height: (screenFrame?.height)! * windowPercentage ) self.setFrame(windowFrame,display: true,animate: true) self.backgroundColor = NSColor.lightGray self.isRestorable = true // Customize contentView let viewPercentage: CGFloat = 0.6 self.contentView?.setFrameSize(NSSize(width: self.frame.size.width * viewPercentage, height: self.frame.size.height)) self.contentView?.setFrameOrigin( NSMakePoint( ( (self.frame.width) - (self.contentView?.frame.width)! )/2, ( (self.frame.height) - (self.contentView?.frame.height)!)/2) ) self.contentView?.autoresizingMask = [.width, .height, .minXMargin,.maxXMargin,.maxYMargin,.minYMargin] } 并使用其contentView帧的百分比,但是当我调整窗口大小时,它会失败。一旦我开始调整窗口的大小,NSWindow它就没有正确调整大小,正如您从下图所示(第二个):

图片一

enter image description here

图片二

enter image description here

我应该覆盖contentView方法来实现这一目标吗? (同样来自界面构建器的自动调整大小也无法解决问题)

1 个答案:

答案 0 :(得分:0)

您不应该尝试更改内容视图的大小。我不相信它是支持的。该窗口控制内容视图的大小。

如果您希望自己的视图仅占用窗口内容区域的一部分,则应将视图添加为内容视图的子视图。