我检查了与First Responder相关的文档,但是当一些UIView作为第一个响应者辞职时,找不到某种回调。让我解释一下我的情景。
所以,我有一个自定义的UIView(以编程方式创建),它在调用时成为第一个响应者。现在,我想在用户点击超级视图或其他视图时关闭/删除此视图。我已经在超级视图中编写了逻辑,以便在收到触摸事件时将其作为第一响应者,但在发生这种情况时无法找到该自定义视图的任何回调以解除它。
采取另一种观点我希望得到与文本字段键盘类似的行为,当其他视图成为第一响应者时,该行为被驳回。
我希望我的问题背景清晰。
答案 0 :(得分:1)
由于UIView
继承自UIResponder
,您只需覆盖resignFirstResponder方法即可根据需要更新外观:
- (BOOL)resignFirstResponder {
if (![super resignFirstResponder])
return NO;
// dismiss self here
return YES;
}
答案 1 :(得分:0)
我假设你在触摸时已经实现了所有其他视图的IBAction方法。那么为什么不在这些方法中让这个自定义视图辞职第一响应者,或者如果你发现这个自定义视图不是零而又不再需要它会被释放?