我正在制作一个 swift 包以将我的 SwiftUI 视图导入应用程序以帮助分离和重用组件。由于“内部”保护级别,我收到初始化程序无法访问的错误消息。
import SwiftUI
@available(iOS 13.0, *)
public struct DynamicText : View {
@Environment(\.editMode) public var editMode
@State public var placeholder : String
@Binding public var text : String
public var body: some View {
if editMode?.wrappedValue.isEditing == true {
// Do Something
TextField(placeholder, text: $text)
} else {
// Do Something
Text(placeholder)
}
}
}
我知道解决方法是创建一个像这样的成员初始化器,但是这样做你必须初始化所有对象,包括@Environment(.editMode) public var editMode。你如何使用所需的成员初始化器初始化这个对象?
public init(placeholder: String, text: Binding<String>) {
self.placeholder = placeholder
self._text = text
}