Use menu-style pickers in tvOS settings

Introduce PlatformMenuPicker that wraps short-option pickers in
LabeledContent + .pickerStyle(.menu) on tvOS so they render as a
compact dropdown instead of pushing a full-screen option list. On
iOS/macOS it falls through to a plain Picker, leaving rendering
unchanged.

Applied across Playback, Subtitles, Sidebar, Privacy, and Advanced
settings. Long language lists in PlaybackSettingsView are left as
push-style.
This commit is contained in:
Arkadiusz Fal
2026-04-16 18:40:19 +02:00
parent df232ad69a
commit e2f3107833
6 changed files with 58 additions and 16 deletions

View File

@@ -42,7 +42,7 @@ private struct QualitySection: View {
var body: some View {
Section {
Picker(
PlatformMenuPicker(
String(localized: "settings.playback.quality.preferred"),
selection: $settings.preferredQuality
) {
@@ -241,7 +241,7 @@ private struct BehaviorSection: View {
var body: some View {
Section(String(localized: "settings.playback.behavior.header")) {
Picker(
PlatformMenuPicker(
String(localized: "settings.playback.resumeAction"),
selection: $settings.resumeAction
) {
@@ -273,7 +273,7 @@ private struct QueueSection: View {
)
#if os(tvOS)
Picker(
PlatformMenuPicker(
String(localized: "settings.playback.queue.autoPlayCountdown"),
selection: $settings.queueAutoPlayCountdown
) {