Я хотел бы создать модальное диалоговое окно, которое содержит несколько NSViews, где во время компиляции неизвестно, сколько представлений отображать. Я смог заполнить окно представлениями, но две проблемы меня удерживают. Одним из них является регулировка размера окна в зависимости от того, сколько элементов должно отображаться. Другой пост будет посвящен другой проблеме.
Я использую раскадровку для создания окна с кнопками «ОК» и «Отмена», затем добавляю к содержимому окна
Вот основные части моего кода:
class ParmViewController: NSViewController {
static func showParmDialog()
{
let storyboard = NSStoryboard(name: "Main", bundle: nil)
let windowController = storyboard.instantiateController(withIdentifier: "ParmViewController") as! NSWindowController
let window = windowController.window!
let viewController = window.contentViewController as! ParmViewController
viewController.setup()
let application = NSApplication.shared
application.runModal(for: window)
window.close()
}
let newHeight:CGFloat = 240
func setup() {
print( view.frame ) // prints (0.0, 0.0, 300.0, 180.0)
view.frame = NSRect( x: 0, y: 0, width: 300, height: newHeight )
print( view.frame ) // prints (0.0, 0.0, 300.0, 240.0)
}
}
Приведенный выше код не влияет на отображаемый размер окна. Представление имеет суперпредставление, которое на 22 пикселя выше этого окна - настройка его размера также не оказывает никакого влияния.
Как мне настроить размер окна на экране?