0

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

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

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

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

4

2 回答 2

1

Since UIView inherits from UIResponder, you can just override the resignFirstResponder method to update your appearance as necessary:

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

    // dismiss self here
    return YES;
}
于 2010-12-24T07:57:34.220 回答
0

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

于 2010-12-24T07:10:25.820 回答