如何从 SwiftUI 中的操作内部访问按钮的 titleLabel?
How to access a Button's titleLabel from inside it's action in SwiftUI?
非常简单,如果我要声明一个按钮,例如:
Button("buttonLabel") {
//How do I access the titleLabel.text, in this case "buttonLabel" inside the button's action?
}
旁注:如果我可以添加任何内容来对此进行上下文化,我可以,但我觉得必须有一些超级简单的方法来访问标签...
您可以通过将其声明为主体外部的变量作为 ContentView
:
的成员来访问它
struct ContentView: View {
let buttonLabel = "buttonLabel"
var body: some View {
Button(buttonLabel) {
print("Pressed \(self.buttonLabel)")
}
}
}
如果您的要求是 check/modify 按钮文本,那么这里是一个示例:
struct ContentView: View {
@State var buttonLabel = "Tap me!"
var body: some View {
Button(buttonLabel) {
self.buttonLabel = self.buttonLabel == "Tap me!" ? "I was tapped!" : "Tap me!"
}
}
}
如果您只想访问标签的值,可以在您的视图中将其设置为 属性。如果您希望能够从您的操作中修改它,您需要使用 @State
包装器对其进行标记,如下所示。
struct YourView: View {
@State var label = "Tap Me"
var body: some View {
Button(label) {
self.label = "Tapped!"
}
}
}
非常简单,如果我要声明一个按钮,例如:
Button("buttonLabel") {
//How do I access the titleLabel.text, in this case "buttonLabel" inside the button's action?
}
旁注:如果我可以添加任何内容来对此进行上下文化,我可以,但我觉得必须有一些超级简单的方法来访问标签...
您可以通过将其声明为主体外部的变量作为 ContentView
:
struct ContentView: View {
let buttonLabel = "buttonLabel"
var body: some View {
Button(buttonLabel) {
print("Pressed \(self.buttonLabel)")
}
}
}
如果您的要求是 check/modify 按钮文本,那么这里是一个示例:
struct ContentView: View {
@State var buttonLabel = "Tap me!"
var body: some View {
Button(buttonLabel) {
self.buttonLabel = self.buttonLabel == "Tap me!" ? "I was tapped!" : "Tap me!"
}
}
}
如果您只想访问标签的值,可以在您的视图中将其设置为 属性。如果您希望能够从您的操作中修改它,您需要使用 @State
包装器对其进行标记,如下所示。
struct YourView: View {
@State var label = "Tap Me"
var body: some View {
Button(label) {
self.label = "Tapped!"
}
}
}