如何在我的情节提要中访问 SwiftUI 中的文本变量
How to access a text Variable in SwiftUI in my Storyboard
struct ContentView: View
{
@State var text = ""
@State var isEditing = false
var body: some View
{
iTextField("text", text: $text, isEditing: $isEditing)
.style(height: 58, backgroundColor: nil, accentColor: Color(red: 0.30, green:
0.76, blue: 0.85), font: nil, paddingLeading: 25, cornerRadius: 6, hasShadow: true,
image: Image(systemName: "magnifyingglass"))
}
}
我的视图中有上面这段代码,它是用 SwiftUI 编写的。如何在我的情节提要代码中访问该 textField 内的文本值?
class ViewController: UIHostingController<ContentView>
{
required init?(coder: NSCoder) {
super.init(coder: coder,rootView: ContentView());
}
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
这就是我必须做的来解决这个问题。
struct MyTextField: View
{
@ObservedObject var model: TextFieldModel
var body: some View
{
iTextField("Email:", text: $model.text, isEditing:
$model.isEditing)
.onReturn{
print($model.text)
NotificationCenter.default.post(name:
Notification.Name(rawValue:
"checkTicker"), object: nil)
}
}
}
class TextFieldModel: ObservableObject
{
init() { }
@Published var text = ""
@Published var isEditing = false
}
class ViewController: UIHostingController<MyTextField>
{
private var model = TextFieldModel()
required init?(coder: NSCoder)
{
super.init(coder: coder,rootView: MyTextField(model: model));
}
override func viewDidLoad()
{
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector:
#selector(checkTicker), name: NSNotification.Name(rawValue:
"checkTicker"), object: nil)
// Do any additional setup after loading the view.
}
@objc func checkTicker()
{
print("hello2 ", model.text)
}
}
struct ContentView: View
{
@State var text = ""
@State var isEditing = false
var body: some View
{
iTextField("text", text: $text, isEditing: $isEditing)
.style(height: 58, backgroundColor: nil, accentColor: Color(red: 0.30, green:
0.76, blue: 0.85), font: nil, paddingLeading: 25, cornerRadius: 6, hasShadow: true,
image: Image(systemName: "magnifyingglass"))
}
}
我的视图中有上面这段代码,它是用 SwiftUI 编写的。如何在我的情节提要代码中访问该 textField 内的文本值?
class ViewController: UIHostingController<ContentView>
{
required init?(coder: NSCoder) {
super.init(coder: coder,rootView: ContentView());
}
override func viewDidLoad()
{
super.viewDidLoad()
// Do any additional setup after loading the view.
}
}
这就是我必须做的来解决这个问题。
struct MyTextField: View
{
@ObservedObject var model: TextFieldModel
var body: some View
{
iTextField("Email:", text: $model.text, isEditing:
$model.isEditing)
.onReturn{
print($model.text)
NotificationCenter.default.post(name:
Notification.Name(rawValue:
"checkTicker"), object: nil)
}
}
}
class TextFieldModel: ObservableObject
{
init() { }
@Published var text = ""
@Published var isEditing = false
}
class ViewController: UIHostingController<MyTextField>
{
private var model = TextFieldModel()
required init?(coder: NSCoder)
{
super.init(coder: coder,rootView: MyTextField(model: model));
}
override func viewDidLoad()
{
super.viewDidLoad()
NotificationCenter.default.addObserver(self, selector:
#selector(checkTicker), name: NSNotification.Name(rawValue:
"checkTicker"), object: nil)
// Do any additional setup after loading the view.
}
@objc func checkTicker()
{
print("hello2 ", model.text)
}
}