我有一个与Web服务通信的类,并在整个应用程序中使用。我正在寻找的是一种在UIActionSheet中显示错误消息的方法,在用户所处的视图之上。有一种简单的方法吗?如果可能的话,我想避免在每个视图中回调方法。
答案 0 :(得分:13)
如果您使用其他答案中的代码,您的应用将在提交到应用商店时被拒绝(使用非公开API)。我发现了困难的方式。更好的解决方案是创建一个类别。以下是我用来替换原始解决方案中的代码的内容:
@interface UIView (FindFirstResponder)
- (UIView *)findFirstResponder;
@end
和
@implementation UIView (FindFirstResponder)
- (UIView *)findFirstResponder
{
if (self.isFirstResponder) {
return self;
}
for (UIView *subView in self.subviews) {
UIView *firstResponder = [subView findFirstResponder];
if (firstResponder != nil) {
return firstResponder;
}
}
return nil;
}
@end
答案 1 :(得分:5)
你想要做的是找到我想到的关键窗口的第一响应者。你可以这样做:
UIWindow *keyWindow = [[UIApplication sharedApplication] keyWindow];
UIView *firstResponder = [keyWindow performSelector:@selector(firstResponder)];
这应该为您提供在UIActionSheet调用中使用的视图。