【问题标题】:How to disable keyboard when clicking a UITextField in iOS?在 iOS 中单击 UITextField 时如何禁用键盘?
【发布时间】:2015-04-12 15:23:10
【问题描述】:

我目前正在开发一个原型,我想先在桌面上进行用户测试,然后再加载到 iPad。

我正在寻找在单击文本字段后禁用键盘的解决方案。这意味着在单击文本字段后,用户可以直接从 macbook 键盘输入信息,而不会出现在模拟器中自动显示的虚拟键盘。我已经阅读了很多教程,但它们都在用户输入后关闭了键盘;那不是我要找的。我应该如何隐藏键盘?

非常感谢!

【问题讨论】:

    标签: ios keyboard uitextfield


    【解决方案1】:

    使用这个:

    UIView *dummyView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 0, 0)];    
    myTextField.inputView = dummyView; // Hide keyboard, but show blinking cursor
    

    它适用于 UITextField 和 UITextView,需要将它们设置为可编辑。

    你在这里做了什么:
    您创建了一个 width=hight=0 的虚拟视图,并将其分配为您的 textField 的 inputView。

    工作原理: viewController 现在不再显示默认键盘,而是将DummyView 显示为inputView 用于您的UITextField。由于 DummyView 有 Width=height=0,你不会在屏幕上看到任何东西 :)

    【讨论】:

    • @Prince Agrawal 它不适用于 ipad air2。它在屏幕底部显示键盘工具栏。你能帮忙吗?
    • @hardikhadwani 这不是特定于设备的。键盘工具栏是什么意思?
    • 如果我在 ipad air2 iOS 9 中运行应用程序,这是行不通的。它显示系统复制,撤消和重做工具栏。
    • 这会创建一个僵尸对象并在视图被释放时使我的应用程序崩溃。所以...谢谢,但不,谢谢。
    • 真的很棒!!谢谢你.. :)
    【解决方案2】:

    这里是another answer,我发现了相同的hack,但几乎没有额外的支持代码sn-p来隐藏闪烁的光标。

    -(BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
        return NO;  // Hides both keyboard and blinking cursor.
    }
    

    我需要对 Quantity 文本字段执行此操作,在该字段中我使用 UIStepper 视图增加/减少数量。所以我需要一直隐藏键盘。

    【讨论】:

      【解决方案3】:

      这会将您的 textField 的 inputView 设置为基本上没有框架的空 UIView

      self.theTextField.inputView = [[UIView alloc] initWithFrame:CGRectZero];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-11-18
        • 1970-01-01
        • 1970-01-01
        • 2021-10-21
        • 1970-01-01
        • 1970-01-01
        • 2020-08-06
        • 1970-01-01
        相关资源
        最近更新 更多