当前位置: 首页 > 面试题库 >

如何获得键盘的高度?

冯新知
2023-03-14
问题内容

不同的iOS设备上的键盘高度不同。有人知道我如何以编程方式获取设备键盘的高度吗?


问题答案:

在Swift中:

您可以通过订阅UIKeyboardWillShowNotification通知来获取键盘高度。(假设您想知道显示的高度是多少)。

像这样:

迅捷2

    NSNotificationCenter.defaultCenter().addObserver(self, selector: "keyboardWillShow:", name: UIKeyboardWillShowNotification, object: nil)

迅捷3

NotificationCenter.default.addObserver(
    self,
    selector: #selector(keyboardWillShow),
    name: NSNotification.Name.UIKeyboardWillShow,
    object: nil
)

斯威夫特4

NotificationCenter.default.addObserver(
    self,
    selector: #selector(keyboardWillShow),
    name: UIResponder.keyboardWillShowNotification,
    object: nil
)

然后,您可以使用以下keyboardWillShow功能访问高度:

迅捷2

func keyboardWillShow(notification: NSNotification) {
    let userInfo: NSDictionary = notification.userInfo!
    let keyboardFrame: NSValue = userInfo.valueForKey(UIKeyboardFrameEndUserInfoKey) as! NSValue
    let keyboardRectangle = keyboardFrame.CGRectValue()
    let keyboardHeight = keyboardRectangle.height
}

迅捷3

@objc func keyboardWillShow(_ notification: Notification) {
    if let keyboardFrame: NSValue = notification.userInfo?[UIKeyboardFrameEndUserInfoKey] as? NSValue {
        let keyboardRectangle = keyboardFrame.cgRectValue
        let keyboardHeight = keyboardRectangle.height
    }
}

斯威夫特4

@objc func keyboardWillShow(_ notification: Notification) {
    if let keyboardFrame: NSValue = notification.userInfo?[UIResponder.keyboardFrameEndUserInfoKey] as? NSValue {
        let keyboardRectangle = keyboardFrame.cgRectValue
        let keyboardHeight = keyboardRectangle.height
    }
}


 类似资料:
  • 问题内容: 我想检查用户在程序启动时是否按下了 Shift 键。(这意味着在程序启动前先按 Shift 键)这是一个简单的控制台程序,与X无关。 这可能类似于Win32 函数。 我想知道我是否可以做到这一点以及如何做到,但是不知道直接访问终端有什么利弊。 问题答案: 你不能 该键不被视为字符键,因此,即使您直接访问终端,也将无法检测到该键。 也许您不必。例如,假设您使用的是美式键盘,其中第一行中的

  • 我正在用PyGame1.9做一个游戏。这是一个失败的简单游戏,一艘船在五列坏人之间移动,这些坏人通过缓慢向下移动进行攻击。我正试图让它,使船舶左,右移动与左右箭头键。这是我的密码: 它工作得太好了。船开得太快了。几乎不可能让它只移动一个位置,向左或向右。我怎样才能使船在每次按键时只移动一次?

  • 当我在gradle中添加Bouncy castle并尝试如上启动时,输出如下:privateKey={opensslecprivateKey@7518}“opensslecprivateKey{params={ecdsa-parameters:(256 bit)\n}}”publicKey={opensslecpublickey@7519}“public-key:(256 bit)\n000000

  • 我有一个活动使用“adjustPan”作为其调整大小配置,我需要在不使用“adjustResize”的情况下计算键盘高度,因为我需要将某些视图保留为全屏(这意味着它们应该保留在原位,键盘应该隐藏它们),并将视图放在键盘正上方。我们的应用程序有一个消息按钮,我通过按钮点击打开键盘。当它发生时,我使用OnGlobalLayoutListener并使用“getWindowVisibleDisplayFr

  • 在我的项目中,如何键盘大写锁定状态。我已经提到了这个问题,我如何才能获得Caps锁定状态,并将其设置为on,如果它还没有?。但我得到的是JavaFX解决方案。请给我解决方案。我也是此站点https://community.oracle.com/thread/2415027?tstart=0的引用者

  • 我使用了下面的代码来获取键盘高度。 但这只在应用程序至少第一次打开键盘时才会给出高度。我想要键盘的高度,甚至在它第一次打开之前。有什么方法可以做到这一点吗?提前谢谢...