我已经使用IB将UIToolBar添加到现有的iPad应用程序中。然后我用IB将它连接到视图控制器并验证连接是否存在。但是,当我单击按钮时,视图控制器中的相应代码不会被执行。
我打开了一个空项目并按照相同的步骤,一切都按预期工作。
我很好奇是否有任何关于我现有项目可能会有什么不同的想法阻止IBAction代码被执行?
我正在使用XCode 4.5.2和iOS 6.0(模拟器)进行开发。
任何想法都值得赞赏,因为我真的很困惑!
答案 0 :(得分:3)
作为评论中提到的casillic,我遇到了这个问题,因为UITapGestureRecognizer我用它来监听用户点击背景,所以如果用户正在编辑一个字段,我可以解除键盘。
UITapGestureRecognizer与工具栏冲突并导致在选择工具栏项时不执行代码 - 相反(在我的情况下)它运行我在监听器中为标签手势设置的“关闭键盘”代码。
为了解决这个问题,我将手势识别器添加到外壳UIScrollView中以获取文本输入而不是主视图。
e.g:
取代了这个:
[self.view addGestureRecognizer:tap];
用这个:
[scrollView addGestureRecognizer:tap];
(scrollView作为我故事板上UIScrollView的IBOutlet连接起来)