【问题标题】:Textfield hidden by keyboard键盘隐藏的文本字段
【发布时间】:2012-12-27 09:37:58
【问题描述】:

我有几个textfield,在可见时会被键盘遮挡。我想当键盘可见时我需要向上移动视图。如何检测到这一点?

【问题讨论】:

标签: ios uitextfield iphone-softkeyboard


【解决方案1】:

检查 iOS 文本、Web 和编辑编程指南中的 Managing the Keyboard - Receiving Keyboard Notifications 部分:http://developer.apple.com/library/ios/#documentation/StringsTextFonts/Conceptual/TextAndWebiPhoneOS/KeyboardManagement/KeyboardManagement.html

When the keyboard is shown or hidden, iOS sends out the following notifications to any registered observers:

UIKeyboardWillShowNotification UIKeyboardDidShowNotification UIKeyboardWillHideNotification UIKeyboardDidHideNotification

【讨论】:

    【解决方案2】:

    也许您正在寻找this 来检测键盘何时在可编辑的文本字段上可见。

    【讨论】:

    • 如果以编程方式创建,您将需要在 xib 或代码中设置您的文本字段委托,然后实现 didBeginEditing 委托。每次您的文本字段开始编辑时,它都会触发。然后,您可以检查键盘隐藏了哪些文本字段,并适当地向上移动容器视图。
    • 宾果游戏!代表就是我要找的。我现在可以处理所有模糊键盘的视图移动。谢谢。
    • 如何适当地向上移动容器视图?
    【解决方案3】:

    我认为你是 iOS 新手。

    我认为您的视图包含 5 - 10 个文本字段,并且使用将一一输入文本。

    如果这是您的情况,请将所有文本字段放在 uiscrollview 中,以便您可以在需要时向上滚动。

    这是所有程序员都遵循的正常方法。

    如果这是您的情况,请告诉我,我可以给您一些示例链接。

    【讨论】:

    • 你用过工具栏和下一个上一个按钮吗?
    • 是的,因为你没有使用 uiscrollview。所以你必须有一些上下移动的方式,带有下一个上一个按钮的工具栏可以为你提供。请参阅此工具栏示例nwmobiledev.com/…
    • 老实说,我认为这是很多额外的工作。我正在寻找一种更简单的方法来自动检测文本字段的编辑模式。
    • 是的,您可以检测到非常简单的编辑模式,就像凯文所说的那样。如果您有更多的文本字段,那么当您编辑文本字段并且下一个文本字段隐藏在键盘下时,就会出现问题。
    【解决方案4】:
    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.35f]; 
    CGRect frame = self.view.frame; 
    frame.origin.y = -60; 
    [self.view setFrame:frame]; 
    [UIView commitAnimations];
    [textField resignFirstResponder];
    

    如果您希望将视图设置在与以前相同的位置,您可以使用此代码上下移动视图,然后您可以使用相同的代码

    [UIView beginAnimations:nil context:NULL];
    [UIView setAnimationDuration:0.35f]; 
    CGRect frame = self.view.frame; 
    frame.origin.y = 0; 
    [self.view setFrame:frame]; 
    [UIView commitAnimations];
    [textField resignFirstResponder];
    

    但是 y 的值不同,您可以使用 frame.origin.y 并相应地调整它..

    【讨论】:

      【解决方案5】:

      This 文档包含您需要的所有代码

      【讨论】:

        猜你喜欢
        • 2014-03-18
        • 2011-01-19
        • 1970-01-01
        • 2018-12-22
        • 2021-05-07
        • 2021-05-20
        • 2023-03-10
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多