菜鸟教程小白 发表于 2022-12-11 19:24:00

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


                                            <p><p>键盘有时会向上移动一点,如图<a href="/image/5czzJ.png" rel="noreferrer noopener nofollow">here</a> </p>

<p>首先,这个问题只发生在 iOS11 上,而不是在早期的 iO​​S 版本上。
其次,这个问题发生在应用程序中的每个 UITextField 实例中,不仅在特定 ViewController 的一个特定文本字段中。</p>

<p>通过观察UIKeyboardWillShowNotification,发现UIKeyboardFrameEndUserInfoKey中存储的键盘边框不正确,准​​确的说是高度错误。</p>

<pre><code>- (void)keyboardWillShow:(NSNotification *)notification {
    NSDictionary *info = ;
    NSString *curveValue = ;
    CGRect rect = [ CGRectValue];
    NSLog(@&#34;keyboard frame: %@&#34;, NSStringFromCGRect(rect));
}
</code></pre>

<p>我们在 iPhone7 (11.1) 上运行时得到这样的日志:</p>

<pre><code>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}}
</code></pre>

<p>216 应该是正确的高度,而 375 是错误的。奇怪的是,键盘的高度恰好等于屏幕的宽度。</p>

<p>根据我得到的事实,我认为这是一个 IOS 11 键盘问题,因为它只发生在 iOS 11 上,并且键盘的高度肯定是由 iOS 控制的,但是由于某种原因它返回了错误的高度。 </p>

<p>然而,棘手的是,我从我们的应用程序中提取了一个包含文本字段的特定 ViewController 并创建了一个单独的演示项目,然后一切正常。而且我没有发现谷歌搜索发生在其他人身上的类似问题。所以我怀疑这可能是因为我们的应用程序中的某些设置导致了这个 iOS11 键盘高度问题。</p>

<p>你们以前有没有遇到过这种奇怪的问题?或者有什么你们能想到的可能是罪魁祸首吗?我已经用完了我的想法。谢谢!</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>整理好了。终于发现是因为我们项目中用到了一个UIView类。</p>

<pre><code>- (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;
</code></pre>

<p>从 iOS11 开始,这些方法不知何故变成了保留方法,重写这些方法会导致这个烦人的问题。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iOS11 键盘问题 - 键盘高度不正确,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/47624164/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/47624164/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iOS11 键盘问题 - 键盘高度不正确