タグ: SwiftUI

  • SwiftUI macOS 新しいウィンドウで開く機能を追加する

    SwiftUI macOS 新しいウィンドウで開く機能を追加する

    これは何?

    macOS 向けの App の開発で SwiftUI を使って、新しいタブを開くやり方の紹介です。

    実装例

    環境

    • Apple Silicon M1 MacBook Air
    • 16 Gb
    • macOS Sequoia 15.0
    • Xcode Version 16.0 (16A242d)

    やり方

    今回は ContentView.swift に設置したボタンを押すと、 PopupWindow.swift が開くものを作ります。

    ウィンドウを用意

    まずは開きたいウィンドウを用意します。
    今回は PopupWindow.swift みたいな適当なファイル名とします。

    //
    //  PopupWindow.swift
    //  sample
    //
    //
    
    import SwiftUI
    import AVKit
    
    struct PopupWindow: View {
        
    
        var body: some View {
            VStack {
               Text("ポップアップウィンドウです")
            }
            .padding()
            .frame(minWidth: 440, minHeight: 480)
        }
    }
    
    #Preview {
        PopupWindow()
    }
    

    windwogroup を追加する

    プロジェクトを作成した際に自動的に作られる、
    アプリ名App.swift ファイルを開きます。

    ここに以下のように追記します。

    //
    //  アプリ名App.swift
    //  sample
    //
    //
    
    import SwiftUI
    
    @main
    struct FolderCustomizerApp: App {
    
        var body: some Scene {
            WindowGroup {
                ContentView()
            }
            // ここを追記した
            WindowGroup(id: "popup") {
                PopupWindow()
            }
        }
    }
    

    ボタンの設置

    最後に ContentView.Swift にボタンを追加ます。

    省略
    
    Button(action: {
        openWindow(id: "popup")
        }) {
        Label("help", systemImage: "keyboard.macwindow")
    }
    
    省略

    以上です! これで動作するはずです。

    もしサイドバーに複数ある情報をクリックして展開するといったことを目指されている場合は公式の
    https://developer.apple.com/jp/videos/play/wwdc2022/10061/ こちらのページがわかりやすくコードつきで解説されているので、こちらをご覧ください。

Home
About
Blog
Works
Contact