相关疑难解决方法(0)

如何使TextField成为第一响应者?

这是我的代码...

struct ContentView : View {
    @State var showingTextField = false
    @State var text = ""
    var body: some View {
        return VStack {
            if showingTextField {
                TextField($text)
            }
            Button(action: {
                self.showingTextField.toggle()
            }) {
                Text ("Show")
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想要的是当文本字段变为可见时,使文本字段成为第一响应者(即,获得焦点并弹出键盘)。

swift swiftui

31
推荐指数
10
解决办法
3078
查看次数

SwiftUI:如何使用@Binding变量实现自定义init

我正在用钱输入屏幕,需要实现一个自定义项,init以根据初始化的金额设置状态变量。

我以为这可以用,但是出现编译器错误:

Cannot assign value of type 'Binding<Double>' to type 'Double'

struct AmountView : View {
    @Binding var amount: Double

    @State var includeDecimal = false

    init(amount: Binding<Double>) {
        self.amount = amount
        self.includeDecimal = round(amount)-amount > 0
    }
    ...
}
Run Code Online (Sandbox Code Playgroud)

swift swiftui

21
推荐指数
5
解决办法
3376
查看次数

在Xcode11 Beta 4中将String(format:,args)与SwiftUI一起使用时出错

升级到Xcode 11 Beta 4之后,在String(format: , args)@Stateproperty一起使用时,我开始看到错误。请参见下面的代码。第二Text行抛出一个错误:

表达式类型“字符串”不明确,没有更多上下文

Texts 1、3和4可以正常工作。

struct ContentView : View {
    @State var selection = 2

    var body: some View {
        VStack {
            Text("My selection \(selection)") // works
            Text("My selection \(String(format: "%02d", selection))") // error
            Text("My selection \(String(format: "%02d", Int(selection)))") // works
            Text("My selection \(String(format: "%02d", $selection.binding.value))") // works
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我意识到这是Beta版软件,但很好奇是否有人可以看到此行为的原因,或者仅仅是一个错误。如果无法解释,我将提交雷达报告。

xcode swiftui xcode11

2
推荐指数
1
解决办法
336
查看次数

标签 统计

swiftui ×3

swift ×2

xcode ×1

xcode11 ×1