Ну, я не думаю, что это из-за самого окна (я проверил ваш случай на Xcode 11.3 с простым текстовым и кнопочным содержимым, и это работает), но из-за некоторого содержимого и / или активных объектов (менеджеры и т. Д.). c.)
В любом случае, вместо принудительного закрытия (как в предоставленном снимке) вы можете попытаться закрыть с помощью действия
NSApp.keyWindow?.performClose(nil)
, это аналогично нажатию кнопки закрытия на заголовке окна .
Обновление: хранить под окном как элемент, а не локальную переменную
let window = NSWindow(contentRect: NSRect(x: 20, y: 20, width: 480, height: 300), styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView], backing: .buffered, defer: false)
как главное окно
class AppDelegate: NSObject, NSApplicationDelegate {
var window: NSWindow! // << default, main window
var window2: NSWindow! // << other window (as example)
... // somewhere below
window2 = NSWindow(contentRect: NSRect(x: 20, y: 20, width: 480, height: 300), styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView], backing: .buffered, defer: false)