相关疑难解决方法(0)

SwiftUI:调整弹出框的大小以适合

我有一个小弹出框示例,其中一个按钮会触发一个弹出框。弹出框只包含一点 UI,在这种情况下是两个按钮,但它仍然占用了大量空间,而不是像我习惯的 UIKit 那样整齐地环绕内容。如何使弹出框适合内容的大小?

iPad 模拟器的屏幕截图和以下代码:

弹出窗口打开时按钮的屏幕截图

struct ContentView: View {

    @State private var showingPopupA = false

    var body: some View {
        HStack {
            Button(action: {
                self.showingPopupA.toggle()
            }, label: {
                Text("Button")
            }).popover(isPresented: self.$showingPopupA) {
                VStack {
                    Button(action: {
                        // Do something
                        self.showingPopupA = false
                    }) {
                        Text("Option A")
                    }
                    Button(action: {
                        // Do something
                        self.showingPopupA = false
                    }) {
                        Text("Option B")
                    }
                }.background(Color.red)
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

macOS 截图: 使用 Xcode 11.0 构建的 macOS 屏幕截图

xcode popover swift swiftui

9
推荐指数
1
解决办法
9332
查看次数

使用 iOS 14 @main 时的托管控制器

我正在试验一个“纯”的 SwiftUI 应用程序。它没有,SceneDelegate所以我不确定在 iOS 上运行时我需要的 Hosting Controller 东西放在哪里。

以前在SceneDelegate我有代码会说这样的话:

let contentView = ContentView()
window.rootViewController = UIHostingController(rootView: contentView)
Run Code Online (Sandbox Code Playgroud)

现在我只有一个@main文件:

var body: some Scene {
    WindowGroup {
        ContentView()
    }
}
Run Code Online (Sandbox Code Playgroud)

那么 Hosting Controller 的东西去哪里了(或者我还能如何访问 SwiftUI 没有的 UIKit 功能?(具体来说,我想弄乱状态栏,自动隐藏主页指示器,以及一些关于亮/暗的事情) SwiftUIpreferredColorScheme不涵盖的模式。)

swiftui

9
推荐指数
3
解决办法
1234
查看次数

SwiftUI TextField 在 ZStack 内的 VStack 中禁用(使用 TextField 模拟警报)

我需要在SwiftUI中制作一个警报,其中有一个可编辑的TextField。目前,SwiftUI(从Xcode 11.3 开始)不支持此功能,因此我正在寻找解决方法。

我知道我可以通过在UIHostingController 中包装普通的 UIKit 位来实现,但我真的想坚持使用全 SwiftUI 实现。

我在ZStack 中有两个VStacks,前面的一个(带有 TextView 的那个)被隐藏和禁用,直到你点击按钮。看看这个:

import SwiftUI

struct ContentView: View {
    @State var isShowingEditField = false
    @State var text: String = "12345"

    var body: some View {
        ZStack {
            VStack {
                Text("Value is \(self.text)")
                Button(action: {
                    print("button")
                    self.isShowingEditField = true
                }) {
                    Text("Tap To Test")
                }
            }
            .disabled(self.isShowingEditField)
            .opacity(self.isShowingEditField ? 0.25 : 1.00)

            VStack(alignment: .center) {
                Text("Edit the …
Run Code Online (Sandbox Code Playgroud)

textfield swiftui

5
推荐指数
2
解决办法
2048
查看次数

SwiftUI 使用 .alert(isPresented) 和 TextField 进行输入?

如何向.alert()SwiftUI 中的函数添加 TextField?我只能找到需要 Swift 的解决方案,而不是 SwiftUI。

.alert(isPresented:$showingAlert) {
    Alert(
        title: Text("What is your name?"),
        message: Text("Fill in your name in the TextField beow"),
        primaryButton: .default(Text("OK")) {
            print("Opening...")

        },
        secondaryButton: .cancel() {
            print("cancelled)
        }
    )
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

4
推荐指数
1
解决办法
2683
查看次数

标签 统计

swiftui ×4

swift ×2

popover ×1

textfield ×1

xcode ×1