super becomeFirstResponder无法正常工作

时间:2012-04-20 12:56:21

标签: iphone objective-c sdk super

我有一个子视图,部分视图是透明的,所以对于用户来说,如果他们要触摸那个透明的空间,那么任何可见的(但也在它下面)应该是交互式的。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
CGPoint pt = [[touches anyObject] locationInView:self];
if (CGRectContainsPoint(tableViewUse.frame, pt)){
    [self becomeFirstResponder];
}else {
    [super becomeFirstResponder];
}    
}

我的子视图类中有上面的代码,但问题是[super becomeFirstResponder]调用不起作用。现在显而易见的解决方案是在我的superview类中进行[self resignFirstResponder]调用;但是,我计划在我的代码中使用这个类的许多实例,所以我必须找到触摸并将其与我的每个实例的帧进行比较等。所以优雅的解决方案是控制子视图中的所有内容。

感谢您的帮助!

P.s刚刚发现了一个会改变我问题的问题。如果我要让superview成为第一个响应者,那么任何touchesBegan方法都将在该superview中调用,并且必须在那里管理触摸。 eeeeeek。

1 个答案:

答案 0 :(得分:2)

试过这个

[self.superview becomeFirstResponder];