我想在UINavigationController提供的UIToolbar的背景上检测触摸(或者只是点击一下)。我尝试过的东西不起作用(或者说我无法工作):
我想要的是检测按钮上没有的任何触摸。鉴于我无法为UINavigationController设置工具栏(它是只读的),所以我无法替换我自己的UIToolbar子类,是否有我缺少的技巧/解决方法?
答案 0 :(得分:4)
以下代码可以解决问题:
CGSize toolbarSize = [[[self navigationController] toolbar] frame].size;
UIControl* backgroundControl = [[UIControl alloc] initWithFrame: CGRectMake(0, 0, toolbarSize.width, toolbarSize.height)];
[backgroundControl addTarget:self action:@selector(toolbarBackgroundTap) forControlEvents:UIControlEventTouchDown];
[backgroundControl setAutoresizingMask: [[[self navigationController] toolbar] autoresizingMask]];
[[[self navigationController] toolbar] insertSubview:backgroundControl atIndex:0];
[backgroundControl release];
@bdares - 感谢您在评论中提出的建议。这非常有帮助。