gpt4 book ai didi

iOS11 键盘问题 - 键盘高度不正确

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:05:53 25 4
gpt4 key购买 nike

键盘有时会向上移动一点,如图here

首先,此问题仅在 iOS11 上发生,而在较早的 iOS 版本上不会发生。其次,这个问题发生在应用程序中的每个 UITextField 实例中,而不仅仅是特定 View Controller 中的一个特定文本字段。

通过观察UIKeyboardWillShowNotification,发现UIKeyboardFrameEndUserInfoKey中保存的键盘frame不正确,准​​确的说是高度错误。

- (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 控制的,但是由于某种原因它返回了一个错误的高度。

然而,棘手的是,我从我们的应用程序中提取了一个包含文本字段的特定 View Controller 并创建了一个单独的演示项目,然后一切正常。而且我没有通过谷歌搜索发现类似的问题发生在其他人身上。所以我怀疑这可能是因为我们应用程序中的某些设置导致了这个 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 开始,这些方法以某种方式成为保留方法,覆盖这些方法将导致这个烦人的问题。

关于iOS11 键盘问题 - 键盘高度不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47624164/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com