カテゴリー: Swift

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

  • 【コラム】Predictive Code Completion Model が追加された! Xcode Version 16.0

    注意カスみたいな記事です

    ベータ版から入れている方には今更かもしれませんが、
    Xcode に Predictive Code Completion Model が追加されました!

    Predictive Code Completion Model は Xcode 16 に対応した予測コード補完機能です。VSCode の Copilot と似ており、コード入力時に提案してくれます。

    個人的に Copilot for Xcode を使用していたので Apple さんが純正で搭載してくれたのは嬉しく思います☺️

    動作条件

    • macOS Sequoia
    • 16GB RAM
    • Apple Silicon

    となっているようです。

    使用感

    実際に使ってみました。

    まずはコメントアウトで、どうしたいのかを記述して改行すると…。

    2,3秒後にこんな感じでうっすらした文字で候補を出してくれます。

    tab キーを押すと候補が確定されます。ここら辺の操作感も VScode Copilot と似ています。
    肝心な制度は微妙に感じました…。ちゃんと使いたいなら Copilot for Xcode といった外部プラグインを使うのが良いなと思いました。(2024/09/19現在の所感)

    今後に期待☺️