問題タブ [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.

0 投票する
1 に答える
203 参照

swift - NSTabViewController で遅延読み込みを無効にする方法は?

ツールバー スタイルの NSTabViewController の SwiftUI ラッパーを設計しています。TabView のドロップイン代替品にしたい。TabView は修飾子tabItem(_:)を使用してタブ名とアイコンを指定します。そこで、自分用に同様の修飾子を設計しましたToolbarTabView:

それぞれを でラップViewし、NSHostingControllerを作成しNSTabViewItemます。次に、 とプロパティonPreferenceChangeを設定しNSTabViewItemます。最後に、の配列を に渡す必要があります。これは、次の問題を除いてすべてうまく機能します。labelimageNSViewControllerRepresentableNSTabViewItemNSTabViewController

設計上NSTabViewController、最初のタブのみが読み込まれます。NSHostingControllerこれは、最初のをレイアウトする最初の をロードしますView。これは、最初のタブの を呼び出しonPreferenceChangeて設定します。labelただし、残りのタブはロードされないため、label未設定のままです。

ラベルと画像を明示的に渡すように API を再設計でき、それが機能することはわかっていますが、Apple はどのようにそれらを実装していTabViewますか? の macOS 実装TabViewNSTabViewController.

回避策は、この質問のタイトルであるすべてのタブを強制的にロードすることだと思いますが、他のアイデアも受け入れます。

参照:

https://github.com/utmapp/UTM/blob/dev/Platform/macOS/ToolbarTabView.swift

https://github.com/utmapp/UTM/blob/dev/Platform/macOS/ToolbarTabViewController.swift