密码自动填充快速键在ios 11中

Bes*_*sat 10 objective-c ios ios11

在ios 11中引入了一项新功能:用于app的密码自动填充功能.此功能允许用户直接通过键盘快速键栏在他们的应用程序中使用他们保存的密码.

https://techcrunch.com/2017/06/08/ios-11s-new-password-autofill-for-apps-wont-work-with-or-replace-your-favorite-password-manager/

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;
}
Run Code Online (Sandbox Code Playgroud)

keyboardSize将是之前的keyboardSize,所以如果我们有快速栏并且现在它已经消失了,那么keyboardSize比它应该更多,反之亦然.似乎在Quickbar show/hide之前会触发keyboardWillShow通知.

如果有人知道如何在快速栏显示/隐藏或任何其他建议后触发键盘通知,请分享.

谢谢..

Shu*_*agi 13

尝试使用UIKeyboardFrameEndUserInfoKey不要UIKeyboardFrameBeginUserInfoKey


zom*_*bie 6

我认为你使用的是错误的钥匙

尝试 UIKeyboardFrameEndUserInfoKey

目标c

CGSize keyboardSize = [info[UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
Run Code Online (Sandbox Code Playgroud)

迅速

let keyboardSize = (info[UIKeyboardFrameEndUserInfoKey] as! NSValue).cgRectValue
Run Code Online (Sandbox Code Playgroud)