如何解决像Flutter这样的功能的Swift速记吗? 澄清
我当时正在写一个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
。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。