簡體   English   中英

鍵盤回避適用於 UITexField - 現在不在 iOS 14

[英]Keyboard avoidance worked for UITexField - Not now in iOS 14

在具有許多子類UITextFieldsUITextViews和其他基於文本的輸入子類的現有項目中,移動 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM