はじめに
こんにちは!システム開発部のYです。
VisionOSの、Windowでは右下に視線を合わせると拡大縮小できる機能が存在しています。今回はこの機能を無効にする方法を調査したため、まとめていきます。
環境
- Swift Version: 5.9.2
- Xcode 15.2
- VisionOS: 1.0
- macOS: 14.3.1
Windowとは
Windowは、macOSのWindowと同じ概念で、Safariを起動すればSafariのWindowが開き、Window内にはそのアプリのコンテンツが表示される。
Windowには、macOSのWindowとは異なる箇所があり、Window内に奥行きを持った3Dオブジェクトを表示することができる。

それ以外に、Volume, Spaceという空間コンピューティングの基本要素があります。
詳しくは、以前VisionOSの基本についてまとめた記事もあるため、気になる方はこちらを参照して下さい。
Window拡大縮小機能とは
Windowには、右下に視線を合わせると拡大縮小機能が現れ、自由自在にサイズを変更することができます。
Window拡大縮小機能を無効にする
数行のコードで実現できます。
onAppear内で、UIWindowSceneを取得しrequestGeometryUpdateでUIWindowScene.ResizingRestrictions.noneを指定します。
import SwiftUI
@main
struct sampleVisionOSApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.onAppear {
guard let windowScene = UIApplication.shared.connectedScenes.first as? UIWindowScene else {
return
}
windowScene.requestGeometryUpdate(.Vision(resizingRestrictions: UIWindowScene.ResizingRestrictions.none))
}
}
}
}これで、目線を合わせても拡大縮小できなくなります。
まとめ
今回は、Window拡大縮小機能の無効の仕方についてまとめました。
調べても情報がなく、Apple公式サンプルアプリ「Happy Beam」で無効にしていたので参考にしました。
この記事がお役に立てれば幸いです。また、間違っている点などありましたら、教えていただけると幸いです。
参考リンク
・https://gaprot.jp/2023/09/11/visionos/
・https://developer.apple.com/documentation/visionos/happybeam
