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/ こちらのページがわかりやすくコードつきで解説されているので、こちらをご覧ください。

coiai.netでは案件受付中です。
Vtuber、建築モデリング、EC構築、ネイティブアプリ制作、制服の制作(実は縫製業もメイン)、Vision Pro向けアプリ etc…
様々な制作開発を行っています。

ご気軽にご相談ください!

コイアイちゃんのアバター

この記事を書いたのは


Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


Top
Blog
Works
contact