父视图创建 @FocusState 控制文本输入框的聚焦状态:
struct HomeActivitySheetView: View {
@FocusState private var isFocused: Bool
在子视图中使用Binding传递FocusState时,发生报错:

报错信息:
Reference to generic type 'FocusState' requires arguments in <...>
报错原因:FocusState是一个泛型,不能作为 @Binding使用。
FocusState<Bool>
在父视图中,声明的是Bool类型:
@FocusState private var isFocused: Bool
这表示 isFocused的实际类型为:
FocusState<Bool>.Binding
这意味着需要传递的是FocusState<Bool>.Binding,而不是整个 FocusState。
在子视图中,使用 @Binding 传递参数时:
@Binding var isFocused: FocusState
Swift会认为FocusState缺少泛型,因此报错。
解决方案:
子视图应该使用 @FocusState.Binding 绑定父视图的 @FocusState:
// 子视图
struct HomeActivitySheetBackground: View {
@FocusState.Binding var isFocused: Bool
}
