【问题标题】:iOS why calling removing the first responder from a uitextield affects the keyboard?iOS为什么调用从uitextield中删除第一响应者会影响键盘?
【发布时间】:2015-11-06 10:17:49
【问题描述】:

好的,我有两个 urtext 字段,当我单击其中一个时,键盘会显示。

现在我有了另一个按钮,所以当用户单击它时,我想隐藏键盘(好吧,这是一个愚蠢的设计,但我只是在学习)。

当用户单击该按钮时,我在代码中所做的是在两个 ui 文本字段上调用 ​​resignfirstresponder 方法,如下所示:

self.firstuitextfield.resignFirstResponder()
self.seconduitextfield.resignFirstResponder()

键盘不知何故消失了,我的问题是为什么会这样? 我刚刚从他们那里删除了第一响应者,这意味着according to this question,他们将不再首先收到消息。这怎么能让键盘消失?现在谁成为第一响应者?

【问题讨论】:

    标签: ios swift keyboard first-responder resignfirstresponder


    【解决方案1】:

    没有人是第一响应者!这就是正在发生的事情!如果他们没有响应者,那么键盘就会隐藏!很漂亮,对吧?但是,如果您想要一行代码来执行此操作,请尝试使用self.view.endediting(true)

    【讨论】:

    • 我知道结束编辑方法。所以你是说键盘隐藏是因为没有第一响应者吗?虽然我没有发送任何消息来隐藏键盘
    • 是的!这正是我要说的。你是如何解释你链接的方法的?他们的目的只是确定一个视图是否可以成为第一响应者。
    • 以同样的方式调用'becomeFirstResponder()'方法来调用键盘!
    • 根据您的回答,由于没有第一响应者,因此键盘消失了。现在我只在两个文本字段之一上调用了 resign first responder 方法,它们的键盘也消失了,为什么?仍然有第二个文本字段作为第一响应者
    • 是的,没错!一次只能有一个第一响应者。因此,如果您从当前的第一响应者中退出第一响应者,那将触发键盘隐藏。如果您想知道哪个子视图是您的第一响应者,请尝试使用此扩展,然后将第一响应者背景颜色设置为不同的颜色或其他颜色! gist.github.com/mbigatti/807a65dfb09f7b442585
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2015-07-15
    • 1970-01-01
    • 2019-04-23
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    相关资源
    最近更新 更多