繁体   English   中英

在 SwiftUI 中将 TextField 固定到键盘

[英]Pin TextField to Keyboard in SwiftUI

是否可以在 SwiftUI 中将文本字段固定到键盘顶部? 与 iOS 上的消息传递应用程序几乎相同,它位于屏幕底部,但当您单击它时会随键盘移动,但使用 SwiftUI,我环顾四周,找不到任何东西。

您可以使用工具栏修饰符和带有.keyboard 放置的工具栏项组来实现此目的。

struct ToolBarTest: View {
    @State private var text: String = ""
    @FocusState private var focus: Bool
    @FocusState private var focusToolbar: Bool
    var body: some View {
        ZStack {
            VStack{
                Spacer()
                TextField("toolbar", text: $text)
                    .textFieldStyle(.roundedBorder)
                    .opacity(focus || focusToolbar ? 0 : 1)
                    .focused($focus)
            }
            .toolbar {
                ToolbarItemGroup(placement: .keyboard){
                    TextField("toolbar", text: $text)
                        .textFieldStyle(.roundedBorder)
                        .focused($focusToolbar)
                }
            }
            .onChange(of: focus) {
                if $0{
                    focusToolbar = true
                }
            }
        }
        
    }
}

倒塌

键盘

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM