問題タブ [nstabviewcontroller]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
swift - NSTabViewController で遅延読み込みを無効にする方法は?
ツールバー スタイルの NSTabViewController の SwiftUI ラッパーを設計しています。TabView のドロップイン代替品にしたい。TabView は修飾子tabItem(_:)
を使用してタブ名とアイコンを指定します。そこで、自分用に同様の修飾子を設計しましたToolbarTabView
:
それぞれを でラップView
し、NSHostingController
を作成しNSTabViewItem
ます。次に、 とプロパティonPreferenceChange
を設定しNSTabViewItem
ます。最後に、の配列を に渡す必要があります。これは、次の問題を除いてすべてうまく機能します。label
image
NSViewControllerRepresentable
NSTabViewItem
NSTabViewController
設計上NSTabViewController
、最初のタブのみが読み込まれます。NSHostingController
これは、最初のをレイアウトする最初の をロードしますView
。これは、最初のタブの を呼び出しonPreferenceChange
て設定します。label
ただし、残りのタブはロードされないため、label
未設定のままです。
ラベルと画像を明示的に渡すように API を再設計でき、それが機能することはわかっていますが、Apple はどのようにそれらを実装していTabView
ますか? の macOS 実装TabView
はNSTabViewController
.
回避策は、この質問のタイトルであるすべてのタブを強制的にロードすることだと思いますが、他のアイデアも受け入れます。
参照:
https://github.com/utmapp/UTM/blob/dev/Platform/macOS/ToolbarTabView.swift
https://github.com/utmapp/UTM/blob/dev/Platform/macOS/ToolbarTabViewController.swift