自定义 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 辞职的主要内容,如果未能解决你的问题,请参考以下文章
如何从 UIBezierPath 创建 IBDesignable 自定义 UIView?
将捏合手势从自定义 UIView 传递到父 UIScrollView