自定义 uiview 从 First Responder 辞职

Posted

技术标签:

【中文标题】自定义 uiview 从 First Responder 辞职【英文标题】:custom uiview resigned from First Responder 【发布时间】:2010-12-24 06:11:04 【问题描述】:

我检查了与 First Responder 相关的文档,但找不到当某些 UIView 不再是第一响应者时收到的某种回调。让我解释一下我的情况。

所以,我有一个自定义 UIView(以编程方式创建),它在调用时成为第一响应者。现在,当用户单击超级视图或其他视图时,我想关闭/删除此视图。我已经在超级视图中编写了逻辑,使其在接收到触摸事件时成为第一响应者,但找不到该自定义视图的任何回调以在发生这种情况时将其关闭。

从另一个角度来看,我希望获得与文本字段键盘类似的行为,当其他视图成为第一响应者时,它会被关闭。

我希望我的问题上下文很清楚。

【问题讨论】:

【参考方案1】:

由于UIView 继承自UIResponder,您只需覆盖resignFirstResponder 方法即可根据需要更新您的外观:

- (BOOL)resignFirstResponder 
    if (![super resignFirstResponder])
        return NO;

    // dismiss self here
    return YES;

【讨论】:

完美!!像魅力一样工作。我怎么没想到。谢谢你:)【参考方案2】:

我假设您在被触摸时已经实现了所有其他视图的 IBAction 方法。那么,如果您发现此自定义视图不是 nil 并且不再需要,为什么不在这些方法中让此自定义视图退出第一响应者甚至被释放?

【讨论】:

以上是关于自定义 uiview 从 First Responder 辞职的主要内容,如果未能解决你的问题,请参考以下文章

iOS:从笔尖加载自定义 UIView

如何从 UIBezierPath 创建 IBDesignable 自定义 UIView?

无法从自定义 UIView 调用按钮的方法

将捏合手势从自定义 UIView 传递到父 UIScrollView

从 ViewController 设置自定义 UIView 的图像

将数据从自定义表格视图单元格传递到 UIView 控制器