我已经为TextField创建了一个类,并且正在尝试为我的类使用@FocusState。要求是在父视图中使用这个自定义类,如下所示-
下面是自定义TextField类-
struct FloatingPlaceholder: View {
@Binding var textfieldText: String
@FocusState var hasFocus: Bool // need this to be optional.
init(textfieldText: Binding<String>, focused: FocusState<Bool>? = nil) {
self._textfieldText = textfieldText
self.hasFocus = focused ?? // How to specify value here..??
}
var body: some View {
TextField("Password", text: $textfieldText)
.focused(focused)
}
}
字符串
然后在Login
类中使用此自定义TextField类-
struct LoginView: View {
@FocusState var passwordFocused: Bool?
var body: some View {
FloatingPlaceholder(textfieldText: $viewModel.password, focused: $passwordFocused)
}
}
型
这给了我一个错误-Cannot convert parent type 'FocusState<LoginAndRegistrationView.Field?>' to expected type 'FocusState<Bool>'
并且还使Preview
部分崩溃。
谁能解释一下我们如何正确使用@FocusState
并将其传递给自定义类?还是有更好的方法来实现这一点?
提前感谢!
1条答案
按热度按时间gab6jxml1#
我做了一些对我有用的事情
字符串
然后像常规绑定变量一样使用它。