![](/img/trans.png)
[英]SwiftUI in iOS14 Keyboard Avoidance Issues and IgnoresSafeArea Modifier Issues
[英]Keyboard avoidance worked for UITexField - Not now in iOS 14
在具有許多子類UITextFields
、 UITextViews
和其他基於文本的輸入子類的現有項目中,移動 UIScroll ( self.view
) 視圖可以很好地避免鍵盤輸入。
由於 iOS 14 UITextField
不會將UIScrollView
向上移動以避免鍵盤,其他所有內容包括UITextView
,繼續正常工作但UITextField
不會。 沒有對代碼或委托進行任何更改
- (void)scrollToField:(id)field
{
if (field != nil && [field isKindOfClass:[UIView class]]) {
UIView *control = (UIView *)field;
CGFloat y = control.frame.origin.y - 90.0f;
[self.view setContentOffset:CGPointMake(0, (y < 0 ? 0 : y)) animated:YES];
}
}
問題似乎是UIView *control = (UIView *)field;
. 我把它UITextField不再是UIView的class? 在此假設下 [ UIView class]
& UIView *control = (UIView *)field;
全部改為UITextField
。 視圖仍然沒有像以前那樣向上移動。
- (void)scrollToField:(id)field
{
if (field != nil && [field isKindOfClass:[UITextField class]]) {
UITextField *control = (UITextField *)field;
CGFloat y = control.frame.origin.y - 90.0f;
[self.view setContentOffset:CGPointMake(0, (y < 0 ? 0 : y)) animated:YES];
}
}
總之,問題是:
iOS 14 中的UITextField
和 class 是什么?
如何在UITextField
之前為 UITextField 恢復移動滾動視圖的功能 14
萬一其他人有這個,-90.0f 的偏移量將UITextfield
稍微放在導航欄下方,從而防止滾動。 只需將其調整為 -100.0f 即可在UITextField
和導航欄之間留出間隙,並允許像以前一樣的滾動行為
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.