⌨️ KeyboardAvoider {}
为 SwiftUI 提供的 KeyboardAvoider。受到 Flutter 中 keyboard_avoider 的简易性的启发。
特性
- 自动滚动到 TextField
- 滑动键盘以取消
安装
Swift Package Manager
创建一个 Package.swift
文件。
import PackageDescription
let package = Package(
name: "TestProject",
dependencies: [
.package(url: "https://github.com/michaelhenry/KeyboardAvoider.git", from: "1.0.0")
]
)
Cocoapods
target 'MyApp' do
pod 'KeyboardAvoider', '~> 1.0'
end
如何使用
import KeyboardAvoider
KeyboardAvoider {
// ... Your view with TextFields
}
示例
KeyboardAvoider {
VStack {
TextField("First name", text: self.$firstname)
TextField("Last name", text: self.$lastname)
TextField("Email", text: self.$email)
TextField("Password", text: self.$password)
TextField("Confirm password", text: self.$password)
Button("Sign Up") {
}
Button("Already have an account?") {
}
}
.padding(.horizontal, 16.0)
}
或者,如果您不想让视图可滚动,只需将 .avoidKeyboard()
只应用于您的视图主视图。
VStack {
TextField("First name", text: self.$firstname)
TextField("Last name", text: self.$lastname)
TextField("Email", text: self.$email)
TextField("Password", text: self.$password)
TextField("Confirm password", text: self.$password)
Button("Sign Up") {
}
Button("Already have an account?") {
}
}
.avoidKeyboard()
常见问题解答(FAQ)
-
如何清除文本框和键盘之间的额外空间
您可以通过忽略
安全区域 - 底部
来移除它。请参阅 示例项目
.edgesIgnoringSafeArea(.bottom)