diff --git a/Examples/Showcase/Showcase/App.swift b/Examples/Showcase/Showcase/App.swift index 279adb9..f9cecf9 100644 --- a/Examples/Showcase/Showcase/App.swift +++ b/Examples/Showcase/Showcase/App.swift @@ -1,5 +1,4 @@ import SwiftUI -import SwiftUIIntrospect #if os(iOS) || os(tvOS) @UIApplicationMain @@ -9,7 +8,7 @@ final class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { window = UIWindow(frame: UIScreen.main.bounds) - window?.rootViewController = UIHostingController(rootView: AppView()) + window?.rootViewController = UIHostingController(rootView: ContentView()) window?.makeKeyAndVisible() return true } @@ -19,220 +18,8 @@ final class AppDelegate: UIResponder, UIApplicationDelegate { struct App: SwiftUI.App { var body: some Scene { WindowGroup { - AppView() + ContentView() } } } #endif - -struct AppView: View { - var body: some View { - NavigationView { - Form { - TextField("Text", text: .constant("Hello")) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.backgroundColor = .red - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - textField.backgroundColor = .red - } - #endif - .brightness(0.1) // <- this causes introspection to fail - Something() - } - #if os(iOS) || os(tvOS) - .introspect(.list, on: .iOS(.v13, .v14, .v15), .tvOS(.v13, .v14, .v15, .v16)) { view in - view.backgroundColor = .purple - } - .introspect(.list, on: .iOS(.v16)) { view in - view.backgroundColor = .purple - } - #elseif os(macOS) - #endif - #if os(iOS) - .navigationBarTitle(Text(""), displayMode: .inline) - #endif - } - #if os(iOS) - .navigationViewStyle(.stack) - #endif - - VStack { - TextField("Name", text: .constant("")) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.clearButtonMode = .whileEditing - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in -// textField.clearButtonMode = .whileEditing - } - #endif - } - .clipped() - - ExampleView() - - VStack { - TextField("textField1Placeholder", text: .constant("")) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.backgroundColor = .orange - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - textField.backgroundColor = .orange - } - #endif - .cornerRadius(8) - TextField("textField2Placeholder", text: .constant("")) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.backgroundColor = .brown - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - textField.backgroundColor = .brown - } - #endif - .cornerRadius(8) - TextField("textField3Placeholder", text: .constant("")) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.backgroundColor = .gray - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - textField.backgroundColor = .gray - } - #endif - .cornerRadius(8) - } - } -} - -struct SecureToggle: ViewModifier { - - @Binding public var isSecure: Bool - - public func body(content: Content) -> some View { - - HStack { - content - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16)) { textField in - textField.isSecureTextEntry = isSecure - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - // textField.clearButtonMode = .whileEditing - } - #endif - - Spacer() - - Button(action: { - self.isSecure.toggle() - }) { - Image(systemName: isSecure ? "eye.slash":"eye").frame(width: 20, height: 20) - } - .padding() - } - } - - } - -struct ExampleView: View { - @State private var text: String = "" - - var body: some View { - TextField("title", text: $text) - .foregroundColor(text.isEmpty ? .red : .blue) - .accentColor(text.isEmpty ? .red : .blue) - .padding(.all, 5) - .background(text.isEmpty ? Color.red.opacity(0.1) : Color.blue.opacity(0.1)) - .cornerRadius(5) - .fixedSize(horizontal: true, vertical: false) - #if os(iOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16)) { textField in - if #available(iOS 14, *) { - textField.attributedPlaceholder = NSAttributedString( - string: "placeholder", - attributes: [NSAttributedString.Key.foregroundColor: UIColor(Color.red)] - ) - } - } - #endif - } -} - -#if canImport(UIKit) -typealias PlatformColor = UIColor -#elseif canImport(AppKit) -typealias PlatformColor = NSColor -#endif - -struct Something: View { - @State var color = PlatformColor.green - @State var text = "s" - - var body: some View { -// NavigationView { -// List { - HStack { - Picker("Color", selection: $color) { - Text("Red").tag(PlatformColor.red) - Text("Green").tag(PlatformColor.green) - Text("Blue").tag(PlatformColor.blue) - } - .fixedSize() - - TextField("dynamic", text: .constant("")) -// .frame(width: 50) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.backgroundColor = color - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - textField.backgroundColor = color - } - #endif - TextField("red", text: .constant("")) -// .frame(width: 50) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.backgroundColor = .red - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - textField.backgroundColor = .red - } - #endif - TextField("yellow", text: .constant("")) -// .frame(width: 50) - #if os(iOS) || os(tvOS) - .introspect(.textField, on: .iOS(.v13, .v14, .v15, .v16), .tvOS(.v13, .v14, .v15, .v16)) { textField in - textField.backgroundColor = .yellow - } - #elseif os(macOS) - .introspect(.textField, on: .macOS(.v13)) { textField in - textField.backgroundColor = .yellow - } - #endif - } -// TextField("dq", text: $text) -// .background(Color.green) -// .introspect(.textField, on: .iOS(.v14, .v15, .v16), observing: color) { textField, color in -// textField.backgroundColor = UIColor(color) -// } -// .introspect(.textField, on: .iOS14, .iOS15, .iOS16, observing: color) { -// textField.backgroundColor = UIColor(color) -// } - -// } -// } - } -}