如何在SwiftUI中获取列表交互键盘高度?
在如何在SwiftUI中获取列表交互键盘高度?,swift,iphone,keyboard,uikit,swiftui,Swift,Iphone,Keyboard,Uikit,Swiftui,在SwiftUI中,我们可以通过向下滑动,让键盘在列表中进行交互。我们只需要将此代码提供给视图的init() init(){ UITableView.appearance().keyboardDismissMode=.interactive } 这可以正常工作,但附加到键盘的视图不会随着键盘本身移动 我在UIKit中找到了应该解决这个问题的帖子。如何在SwiftUI中解决它 这是我处理键盘弹出的方式: 最终类键盘响应器:ObservableObject{ 私人var_中心:通知中心 @已发布的
SwiftUI
中,我们可以通过向下滑动,让键盘在列表中进行交互。我们只需要将此代码提供给视图的init()
init(){
UITableView.appearance().keyboardDismissMode=.interactive
}
这可以正常工作,但附加到键盘的视图不会随着键盘本身移动
我在UIKit中找到了应该解决这个问题的帖子。如何在SwiftUI中解决它
这是我处理键盘弹出的方式:
最终类键盘响应器:ObservableObject{
私人var_中心:通知中心
@已发布的专用(集合)变量currentHeight:CGFloat=0
@已发布的专用(设置)var持续时间:Double=0.0
init(中心:NotificationCenter=.default){
_中心=中心
_center.addObserver(self,选择器:#选择器(keyBoardWillShow(通知:)),名称:UIResponder.keyboardWillShowNotification,对象:nil)
_center.addObserver(self,选择器:#选择器(keyBoardWillHide(通知:)),名称:UIResponder.keyboardWillHideNotification,对象:nil)
}
脱硝{
_中心移动观察者(自我)
}
@objc func键盘将显示(通知:通知){
如果让keyboardSize=(notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey]作为?NSValue)?.cgRectValue,
让duration=notification.userInfo?[UIResponder.keyboardAnimationDurationUserInfoKey]作为?双精度{
self.duration=持续时间
currentHeight=键盘大小.height
}
}
@objc func键盘将隐藏(通知:通知){
currentHeight=0
}
}
结构KeyboardHandler:ViewModifier{
让高度:CGFloat
持续时间:双倍
func正文(内容:内容)->某些视图{
内容
.padding(.bottom,height)
.animation(.spring(blendDuration:duration))
}
}