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(@"%f, %f", 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'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]