直接调用 UIResponder.resignFirstResponder 可以吗?

Posted

技术标签:

【中文标题】直接调用 UIResponder.resignFirstResponder 可以吗?【英文标题】:Is it okay to call UIResponder.resignFirstResponder directly? 【发布时间】:2018-12-04 03:10:28 【问题描述】:

我刚开始怀疑实际上不允许直接调用resignFirstResponder。不像NSResponder,它允许在UIKit中直接调用becomeFirstResponder。到目前为止,我假设调用resignFirstResponder 也可以。但实际上,手册上说resignFirstResponder 方法是为了得到通知,并没有提到直接调用。

通知该对象它已被要求放弃其状态 作为其窗口中的第一响应者。

如果它的设计方式与NSResponder 的工作方式相同,则不允许直接调用resignFirstResponder,尽管手册中没有明确的方法来确定调用的有效性...

如果它被设计为不直接调用,直接调用该方法将是有害的或使代码更难维护。

直接调用UIResponder.resignFirstResponder方法可以吗?

【问题讨论】:

【参考方案1】:

似乎没问题,因为on another part of the manual,上面写着

... 要关闭键盘,请调用 resignFirstResponder 方法 当前是第一响应者的基于文本的视图。当一个文本 视图放弃了它的第一响应者状态,它结束了当前的编辑 会议,通知其代表这一事实,并驳回 键盘。换句话说,如果你有一个名为myTextField 的变量 指向当前是第一个的 UITextField 对象 响应者,关闭键盘就像做 以下:

[myTextField resignFirstResponder];

从那时起,文本对象会自动为您处理所有内容。

【讨论】:

以上是关于直接调用 UIResponder.resignFirstResponder 可以吗?的主要内容,如果未能解决你的问题,请参考以下文章

在VC中 可以直接调用资源中的EXE文件吗?

为啥调用“应用”而不是直接调用函数?

java中在同一类中普通方法可以直接调用普通方法和静态方法吗?

函数的啥调用是一个函数直接或间接地调用它自身

直接调用和不调用 LayoutInflater 有啥区别?

Java 方法直接调用 vs 单元素循环调用