【问题标题】:I need to disable user interaction with either the keyboard or the entire app我需要禁用用户与键盘或整个应用程序的交互
【发布时间】:2015-04-06 06:08:04
【问题描述】:

我有一个UITextField,它可以调出键盘,现在,一旦你点击“开始”,你仍然可以在加载内容时编辑文本字段(更重要的是,你正在与键盘交互并且仍然可以再次按回车键,会产生一堆问题)。

我已经尝试过[[UIApplication sharedApplication] beginIgnoringInteractionEvents],但您仍然可以与键盘进行交互。我不想在加载时隐藏键盘,因为如果输入无效,用户将需要再次使用键盘。非常感谢任何帮助。

【问题讨论】:

    标签: ios xcode keyboard uitextfield


    【解决方案1】:

    我认为您的处理方式有误。我要做的是:

    一旦用户点击“开始”并开始加载,隐藏键盘并禁用文本字段上的用户交互。

    如果输入无效,请再次启用文本字段并调出键盘。

    据我所知,如果键盘在视图中,它就不能被禁用(而且有充分的理由,那是糟糕的 UI 设计。)

    【讨论】:

    • 你让我重新思考这个问题。但是,如果输入正确,则键盘会在下一个视图完全显示的同时完全消失。如果输入无效,则用户必须等到键盘向上滑动才能解决问题(效率低下)。这恰好是警报框完全消失的同时,这恰好使它很方便,但如果它是一个静态键盘,你的 UI 设计理念是否仍然适用?它仍然需要被禁用,对吧?
    • 它很简单,如果键盘在屏幕上,它会邀请用户输入文本。如果用户不能与他们的键盘进行交互,它实际上会显得毫无意义和令人沮丧。如果那样的话,键盘只需要半秒钟就会出现在屏幕上。所以它的等待时间并不长。此外,当键盘重新出现时,您将文本字段设置为 firstResponder,使用户可以轻松方便地开始输入并点击“Go”重试。这比在屏幕上无法使用的键盘要好得多...
    • 我试过你的方法,效果不错。顺便说一句,流行且成功的应用程序“Songza”不同意您的 UI 设计理念,但是,他们也无法禁用键盘,您可以多次按 Go 以使其出现故障。如果键盘被禁用,他们的设计看起来确实不错并且流线型。感谢您的意见。
    • 你可以按 Go 并让它出现故障这一事实告诉我他们的设计很糟糕。很高兴你来对了。
    【解决方案2】:

    你可以这样尝试,假设当你点击“GO”时goClicked方法是fire方法

    - (void)goClicked
    {
       [self.view endEditing:YES];
       [yourTextField setUserInteractionEnabled:NO];
    
       //loading things code
       //when loading completes or loading fails
       [yourTextField setUserInteractionEnabled:YES];
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多