当UITableViewCells是UIResponders时,didSelectRowAtIndexPath的替代方案?

时间:2010-05-17 22:45:19

标签: iphone objective-c uitableview

我的tableview中的单元格是水平的UIScrollViews,我假设是没有调用didSelectRowAtIndexPath的原因。我在该方法中调用了resignFirstResponder。

有没有人有一个简单的方法来解决这个问题? didSelectRowAtIndexPath有替代品吗?或者有没有办法让这种方法解决?

谢谢!

2 个答案:

答案 0 :(得分:1)

您可能仍在使用cellForRowAtIndexPath,并且您可能将UIScrollView作为单元格contentView的子视图。你能在超级视图链上调用一个方法,即[self.superview method][self.superview.superview method]吗?这应该至少让你回到UITableView对象,如果有必要,你可以通过标记识别你的UIScrollViews。

答案 1 :(得分:0)

因此,为了解决我的这个小问题,我想出了一个可以在AppDelegate中实现的快速方法。

- (void)setFirstResponder:(UISearchBar *)setResponder{  
    responder = setResponder;   
}

- (void)unsetFirstResponder{        
    if(responder){
        [responder resignFirstResponder];
        responder = nil;
    }   
}

然后每当你打电话给第一响应者

[(yourAppDelegate *)[[UIApplication sharedApplication] delegate] setFirstResponder:yourResponderObject];    

每当你辞职第一响应者

[(yourAppDelegate *)[[UIApplication sharedApplication] delegate] unsetFirstResponder];  

希望这有助于某人! :)