在ios 11中引入了一项新功能:应用程序的密码自动填充功能。 此功能允许用户直接通过键盘快速键栏在他们的应用程序中使用他们保存的密码。
https://code.tutsplus.com/articles/faster-logins-with-password-autofill-in-ios-11--cms-29096
https://developer.apple.com/videos/play/wwdc2017/206/
但问题是当我使用keyboardWillShow或keyboardWillHide或keyboardDidShow或keyboardDidHide事件时,他们都没有考虑使用keyboardSize的快速栏高度。
- (void)keyboardWillShow:(NSNotification *)notification {
NSDictionary* info = [notification userInfo];
CGSize keyboardSize = [info[UIKeyboardFrameBeginUserInfoKey] CGRectValue].size;
}
keyboardSize将是之前的keyboardSize,所以如果我们有快速栏并且现在它已经消失了,那么keyboardSize比它应该更多,反之亦然。 似乎在快速栏显示/隐藏之前会触发keyboardWillShow通知。
如果有人知道如何在快速栏显示/隐藏或任何其他建议后触发键盘通知,请分享。
谢谢..
答案 0 :(得分:13)
尝试使用points
dont UIKeyboardFrameEndUserInfoKey
答案 1 :(得分:6)
我认为您使用了错误的密钥
尝试UIKeyboardFrameEndUserInfoKey
目标c
CGSize keyboardSize = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
夫特
let keyboardSize = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue