簡體   English   中英

iOS11鍵盤問題-鍵盤高度不正確

[英]iOS11 keyboard issue - incorrect keyboard height

鍵盤移動一點點起來,有時,如上圖在這里

首先,此問題僅在iOS11上發生,而在較早的iOS版本上不發生。 其次,此問題發生在應用程序中的每個UITextField實例上,不僅發生在特定視圖控制器內的一個特定文本字段中。

通過觀察UIKeyboardWillShowNotification,發現UIKeyboardFrameEndUserInfoKey中存儲的鍵盤框架不正確,確切地說,高度是錯誤的。

- (void)keyboardWillShow:(NSNotification *)notification {
    NSDictionary *info = [notification userInfo];
    NSString *curveValue = [info objectForKey:UIKeyboardAnimationCurveUserInfoKey];
    CGRect rect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
    NSLog(@"keyboard frame: %@", NSStringFromCGRect(rect));
}

在iPhone7(11.1)上運行時,我們得到如下日志:

keyboard frame {{0, 451}, {375, 216}}
keyboard frame {{0, 292}, {375, 375}}
keyboard frame {{0, 451}, {375, 216}}
keyboard frame {{0, 292}, {375, 375}}
keyboard frame {{0, 292}, {375, 375}}

216應該是正確的高度,而375是錯誤的。 鍵盤的高度恰好等於屏幕的寬度,這很奇怪。

根據我得到的事實,我認為這是IOS 11鍵盤問題,因為它僅在iOS 11上發生,並且鍵盤的高度肯定是由iOS控制的,但是由於某種原因它返回了錯誤的高度。

但是,棘手的是,我從我們的應用程序中提取了一個包含文本字段的特定視圖控制器,並創建了一個單獨的演示項目,然后一切正常。 而且我沒有發現Googling在其他人身上也遇到過類似的問題。 所以我懷疑這可能是由於我們的應用程序中的某些設置導致了iOS11鍵盤高度問題。

你們以前經歷過這種奇怪的問題嗎? 還是你們有什么能想到的罪魁禍首? 我對此已經沒有想法了。 謝謝!

得到排序。 最終發現這是因為我們在項目中使用了UIView類別。

- (void)setWidth:(CGFloat)width;
- (void)setHeight:(CGFloat)height;
- (void)setSize:(CGFloat)size;
- (void)setXPos:(CGFloat)xPos;
- (void)setYPos:(CGFloat)yPos;
- (void)setXPos:(CGFloat)xPos yPos:(CGFloat)yPos;

從iOS11開始,這些方法成為保留方法,而覆蓋這些方法將導致此煩人的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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