From f1fa3cbbdfb0c32a97d1584467ff4ee2b1713700 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=96=E7=95=8C?= Date: Sat, 6 Dec 2025 19:35:16 +0800 Subject: [PATCH] Fix form on tvOS --- .../Views/Abstract/FormItem.swift | 60 ++++++++++++------- .../Abstract/NavigationButtonsView.swift | 2 +- .../Views/Connections/ConnectionView.swift | 7 +++ 3 files changed, 48 insertions(+), 21 deletions(-) diff --git a/ApplicationLibrary/Views/Abstract/FormItem.swift b/ApplicationLibrary/Views/Abstract/FormItem.swift index 73d8974..05b22ed 100644 --- a/ApplicationLibrary/Views/Abstract/FormItem.swift +++ b/ApplicationLibrary/Views/Abstract/FormItem.swift @@ -11,29 +11,49 @@ public func FormView(@ViewBuilder content: () -> some View) -> some View { } public func FormTextItem(_ name: LocalizedStringKey, _ value: String) -> some View { - HStack { - Text(name) - Spacer() - Text(value) - .multilineTextAlignment(.trailing) - .font(Font.system(.caption, design: .monospaced)) - #if os(iOS) || os(macOS) - .textSelection(.enabled) - #endif - } + #if os(tvOS) + Button {} label: { + HStack { + Text(name) + Spacer() + Text(value) + .multilineTextAlignment(.trailing) + .font(Font.system(.caption, design: .monospaced)) + } + } + #else + HStack { + Text(name) + Spacer() + Text(value) + .multilineTextAlignment(.trailing) + .font(Font.system(.caption, design: .monospaced)) + .textSelection(.enabled) + } + #endif } public func FormTextItem(_ name: LocalizedStringKey, _ systemImage: String, @ViewBuilder _ value: () -> some View) -> some View { - HStack { - Label(name, systemImage: systemImage) - Spacer() - value() - .multilineTextAlignment(.trailing) - .font(Font.system(.caption, design: .monospaced)) - #if os(iOS) || os(macOS) - .textSelection(.enabled) - #endif - } + #if os(tvOS) + Button {} label: { + HStack { + Label(name, systemImage: systemImage) + Spacer() + value() + .multilineTextAlignment(.trailing) + .font(Font.system(.caption, design: .monospaced)) + } + } + #else + HStack { + Label(name, systemImage: systemImage) + Spacer() + value() + .multilineTextAlignment(.trailing) + .font(Font.system(.caption, design: .monospaced)) + .textSelection(.enabled) + } + #endif } public func FormItem(_ title: String, @ViewBuilder content: () -> some View) -> some View { diff --git a/ApplicationLibrary/Views/Abstract/NavigationButtonsView.swift b/ApplicationLibrary/Views/Abstract/NavigationButtonsView.swift index b27f17b..ff4c998 100644 --- a/ApplicationLibrary/Views/Abstract/NavigationButtonsView.swift +++ b/ApplicationLibrary/Views/Abstract/NavigationButtonsView.swift @@ -35,7 +35,7 @@ public struct NavigationButtonsView: View { #if os(tvOS) private var tvOSBody: some View { - Group { + HStack { if showConnectionsButton { Button { onConnectionsTap() diff --git a/ApplicationLibrary/Views/Connections/ConnectionView.swift b/ApplicationLibrary/Views/Connections/ConnectionView.swift index 58e1da4..976d499 100644 --- a/ApplicationLibrary/Views/Connections/ConnectionView.swift +++ b/ApplicationLibrary/Views/Connections/ConnectionView.swift @@ -99,6 +99,13 @@ public struct ConnectionView: View { .background { NavigationLink(isActive: $showDetails) { ConnectionDetailsView(connection) + #if os(tvOS) + .toolbar { + ToolbarItemGroup(placement: .topBarLeading) { + BackButton() + } + } + #endif } label: { EmptyView() }