以下代码在IOS 5中运行良好,但现在handleTapGesture
甚至没有在IOS 6中被调用。发生了什么变化?
- (id)initWithCoder:(NSCoder *)coder
{
self = [super initWithCoder:coder];
if (self) {
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTapGesture:)];
[self addGestureRecognizer:tap];
}
return self;
}
- (void)handleTapGesture:(UITapGestureRecognizer *)recognizer
{
MessageNib *cell = self;
MessageView *view = (MessageView *)[[[NSBundle mainBundle] loadNibNamed:@"MessageView" owner:self options:nil] objectAtIndex:0];
view.message = cell.message;
[[NSNotificationCenter defaultCenter] postNotificationName:NEW_SUB_PAGE object:view];
}
我想你必须在分配初始化后设置taps的数量
tap.numberOfTapsRequired = 1;
或者另一种可能性是initWithCoder没有被调用。
最终只是在我的项目上放置了一个"幻影"按钮(又名没有内容的按钮),我想点击并将一个Touch Up Inside
事件附加到调用我的点击手势代码的按钮上。
无论如何,这是一个不错的瞬间黑客。