菜鸟教程小白 发表于 2022-12-12 12:42:08

ios - TextField 显示时获取 UIKeyboard 高度


                                            <p><p>我有几个 UITextFields 在弹出时会被键盘隐藏,所以我实现了 <code>UIKeyboardWillShowNotification</code> 和 <code>UIKeyboardWillHideNotification</code> 并将它们发送到各自的方法:</p>

<pre><code>- (void)keyboardWillShow:(NSNotification*)notification
{
    CGFloat height = [ CGRectValue].size.height;
    keyBoardHeight = height;
}

- (void)keyboardWillHide:(NSNotification*)notification
{
    CGFloat height = [ CGRectValue].size.height;
    keyBoardHeight = height;
}
</code></pre>

<p>然后我将我的文本字段委托(delegate)给此方法:</p>

<pre><code>//TextFieldDelegate
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    float keyboardOffset = ;
    NSLog(@&#34;%f, %f&#34;, keyBoardHeight, keyboardOffset);

    ;
    ;
    self.view.frame = ];
    ;
}
</code></pre>

<p>代码运行正常,但是当我运行代码时,<code>keyboardWillShow:</code> 方法在 <code>textFieldDidBeginEditing:</code> 方法之后运行<strong></strong>。正因为如此,代码第一次运行时 <code>keyboardHeight</code> 被设置为 0,所以我计算的偏移量是很远的。</p>

<p>如何使 <code>keyboardWillShow:</code> 方法在 <code>textFieldDidBeginEditing:</code> 方法之前运行<strong></strong>?我可以使用其他委托(delegate)方法吗?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>抱歉,没有办法。您必须在 <strong>在通知观察者内</strong> 制作动画或进行键盘处理的任何操作。
这是 Apple 推荐的,并且在我迄今为止遇到的所有情况下都适用。</p>

<p> <a href="https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html" rel="noreferrer noopener nofollow">Apple&#39;s Keyboard Guide</a> </p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - TextField 显示时获取 UIKeyboard 高度,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/26901665/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/26901665/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - TextField 显示时获取 UIKeyboard 高度