SwiftUI: Add ClearButton to TextField

前端 未结 5 595
长发绾君心
长发绾君心 2021-02-07 22:46

I am trying to add a ClearButton to TextField in SwiftUI when the particular TextField is selected.

The closest I got was creating a ClearButton ViewM

5条回答
  •  长发绾君心
    2021-02-07 23:14

    Use ZStack to position the clear button appear inside the TextField.

    TextField("Some Text" , text: $someBinding).modifier(ClearButton(text: $someBinding))
    
    struct ClearButton: ViewModifier
    {
        @Binding var text: String
    
        public func body(content: Content) -> some View
        {
            ZStack(alignment: .trailing)
            {
                content
    
                if !text.isEmpty
                {
                    Button(action:
                    {
                        self.text = ""
                    })
                    {
                        Image(systemName: "delete.left")
                            .foregroundColor(Color(UIColor.opaqueSeparator))
                    }
                    .padding(.trailing, 8)
                }
            }
        }
    }
    

提交回复
热议问题