Swift Shorthand 像 Flutter 这样的函数?

Swift Shorthand for Functions like Flutter?

我正在写一个 SwiftUI 按钮,我想知道是否有办法让我变成这样的东西 ⤵

Button(action: {
  self.textField.value?.becomeFirstResponder()
})

进入⤵

Button(action: => self.textField.value?.becomeFirstResponder())

澄清

self.textField.value?.becomeFirstResponder() is not a Void function.() -> Bool类型的函数。但它只是在下面的答案中用作示例。

按钮的选择并不多。我们为简单文本按钮提供了更短的语法:

Button("Title") {
    self.textField.value?.becomeFirstResponder()
}

否则,如果按钮比简单文本更复杂,建议使用您的示例:

Button(action: {
    self.textField.value?.becomeFirstResponder()
}) {
    // Button label here
}

还有机会根据您的情况 textField 来缩短代码(也许可以分享更多相关信息)

Button 操作类型为 () -> Void:

public init(action: @escaping () -> Void, @ViewBuilder label: () -> Label)

因此,如果您的函数也是 () -> Void 类型:

func buttonAction() {
    // ...
}

你可以这样做:

Button(action: buttonAction) {
    Text("Button")
}

否则你需要坚持你已经尝试过的或使用另一个init