xcode SwiftUI:从父类在自定义文本字段类中传递@FocusState

nxowjjhe  于 2023-08-07  发布在  Swift
关注(0)|答案(1)|浏览(196)

我已经为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并将其传递给自定义类?还是有更好的方法来实现这一点?
提前感谢!

gab6jxml

gab6jxml1#

我做了一些对我有用的事情

struct AppTextField: View {
   var isFocused: FocusState<Bool>.Binding

   ...
}

字符串
然后像常规绑定变量一样使用它。

相关问题