前提・実現したいこと
MacOS用Appを作成していて、ボタンを押すと別のウィンドウが表示され、
新しいウィンドウ上のボタンを押すと閉じるような物を作成したい。
新規ウィンドウ表示はできているが、新規ウィンドウを閉じるとエラーが発生する。
発生している問題・エラーメッセージ
Thread 1: EXC_BAD_ACCESS (code=1, address=0x20)
このメッセージは、AppDelegate.swiftに表示されます。
閉じる以外は問題なく、また、閉じるButtonでもウィンドウ右上の×ボタンを押しても発生します。
また、ウィンドウ下部デバッグコンソールには、ウィンドウが閉じるタイミングで、下記表示が現れます。
(lldb)
該当のソースコード
swift
1import Cocoa 2import SwiftUI 3 4struct ContentView: View { 5 var body: some View { 6 Button(action: {newWindow()}){ 7 Text("NewWindow") 8 } 9 } 10} 11 12func newWindow() { 13 var window: NSWindow! 14 let newview = newView() 15 16 window = NSWindow( 17 contentRect: NSRect(x: 0, y: 0, width: 480, height: 300), 18 styleMask: [.titled, .closable, .miniaturizable, .resizable, .fullSizeContentView], 19 backing: .buffered, defer: false) 20 window.center() 21 window.contentView = NSHostingView(rootView: newview) 22 window.makeKeyAndOrderFront(nil) 23} 24 25struct newView: View { 26 var body: some View { 27 Button(action:{NSApplication.shared.keyWindow?.close()}){Text("Close")} 28 } 29}
補足情報(FW/ツールのバージョンなど)
Xcode 11.4
Mac OS 10.15
Swift 5.2
回答1件
あなたの回答
tips
プレビュー