У меня есть NSWindow
с его contentView. В awakeFromNib()
из 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
кадра, но он не работает, когда я изменяю размер окна. Как только я начинаю изменять размер окна, contentView
изменяет размер неправильно, как вы можете видеть из следующего изображения (второго):
Изображение одно
Изображение два
Должен ли я переопределить метод resize(withOldSuperviewSize:)
для достижения этой цели? (также авторазмер из интерфейса не решает проблему)