在使用TextField
输入框时,输入的内容需要全部清除时,肯定希望有一键清除功能 (clearButton
),这个功能在TextField
暂时没有可直接设置的API,同时在键盘类型设置为数字键盘等类型时,右下角没有return
键可供收起键盘,这时在键盘上自定义收起键盘的按钮就非常必要,本文将介绍这两种实用技巧。
TextField 清除按钮
可以通过设置 UITextField
中的 clearButtonMode
来实现效果,具体可以看文末的详细代码和注释。
TextField 添加收起键盘按钮
可以绑定 FocusState
属性,配合添加键盘 toolbar
菜单工具按钮实现,具体可以看文末的详细代码和注释。
详细代码
import SwiftUI
struct TextView: View {
@State private var numbers: String = ""
@FocusState private var focusedField: Bool
var body: some View {
Form {
TextField(text: $numbers, prompt: Text("数量")) {
}
.textFieldStyle(.roundedBorder)
.speechAdjustedPitch(0.5)
.keyboardType(.decimalPad)
// 绑定 focusedField
.focused($focusedField, equals: true)
// 键盘添加toolbar
.toolbar {
ToolbarItem(placement: .keyboard, content: {
Spacer()
})
ToolbarItem(placement: .keyboard) {
Button {
self.focusedField = false
} label: {
Image(systemName: "keyboard.chevron.compact.down")
}
}
}
.padding(.vertical)
.onAppear {
// 通过设置 UITextField 中的 clearButtonMode 来实现效果
// .whileEditing 编辑时出现清除按钮
// .unlessEditing 编辑时不出现,编辑后才出现清除按钮
// .always 一直显示清除按钮
UITextField.appearance().clearButtonMode = .whileEditing
}
}
}
}
本文自 https://www.codeun.com 发布,相应代码均自主编写并严格审阅和测试,完整代码中包含丰富的学习笔记和使用方式、实用技巧。
· 如若转载,请注明出处:https://www.codeun.com/archives/894.html ·