【问题标题】:Get iOS Keyboard Height, when Hardware Keyboard is Attached连接硬件键盘时获取 iOS 键盘高度
【发布时间】:2016-12-26 00:38:26
【问题描述】:

当硬件键盘连接到 iOS 设备 (iPad) 时,仍然可以看到软件键盘的一小部分:带有单词建议的工具栏以及撤消和重做按钮。

最初我希望用于推断键盘高度的记录方法(请参阅https://developer.apple.com/library/ios/documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html)将 - 在这种情况下 - 只是给出这个栏的高度。但是,报告的高度仍然是完整软件键盘的高度(尽管只有一部分可见)。

当连接了硬件键盘时,我们如何获得可见软件键盘的高度?

【问题讨论】:

    标签: ios ipad


    【解决方案1】:

    这个问题的答案是 Sarah Elans 对她的问题“How to reliably detect if an external keyboard is connected on iOS 9?”的回答的一部分 (我不认为这里的问题是重复的,尽管其他答案涵盖了其中的一部分(也缺少特定的公式)):

    可以通过检查 origin.y(而不是 size.height)来获得软件键盘的可见高度,然后从窗口的高度中减去该值,即

    // Called when the UIKeyboardDidShowNotification is sent.
    - (void)keyboardWasShown:(NSNotification*)aNotification
    {
        NSDictionary* info = [aNotification userInfo];
    
        // Get the size of the keyboard.
        NSValue* keyboardFrameValue     = [info objectForKey:UIKeyboardFrameEndUserInfoKey];
        CGRect keyboardRectWrtScreen    = [keyboardFrameValue CGRectValue];
    
        keyboardWidth = keyboardRectWrtScreen.size.width;
        keyboardHeight = [[[self view] window] frame].size.height - keyboardRectWrtScreen.origin.y;
    }
    

    【讨论】:

    • 使用 UIKeyboardDidShowNotification 得到真正的高度很棒
    猜你喜欢
    • 2014-11-24
    • 2015-05-06
    • 2016-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 2015-03-05
    • 2015-11-14
    • 1970-01-01
    相关资源
    最近更新 更多