【问题标题】:Can't add UITapGestureRecognizer to UITableViewController Inside a UITabbarController无法将 UITapGestureRecognizer 添加到 UITabbarController 内的 UITableViewController
【发布时间】:2015-02-21 08:16:54
【问题描述】:

我有一个应用程序,它有一个 UITabBarController,在它的一个项目中我有一个 UITableViewController,我想添加一个 UITapGestureRecognizer 来查看 UITableViewController。

我的代码来了:

 - (void)viewDidLoad  
{
[super viewDidLoad];
     UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyBoard:)];
        [self.view addGestureRecognizer:tap];
}
- (void)dismissKeyBoard:(id)sender
{
        [self.view endEditing:NO];
}

但从不调用dismissKeyBoard! 我该怎么办?为什么不调用它?

【问题讨论】:

  • 你需要给 UITableViewCell 添加点击手势。问题是在 UITableView 中你永远不会触摸它的视图,你总是触摸 UITableViewCell 视图。
  • 您也将endEditing 设置为NO,而它应该是YES
  • @Shashi3456643 我做到了,但没用!
  • @SASmith 这里的主要问题是从不调用dismisskeyboard
  • 您能否在您的调试器中检查是否在加载 UITableView 时调用了 UITableViewCell 子类中的 initWithFrame。我希望你尝试我的答案

标签: ios iphone uitableview uitabbar


【解决方案1】:

在不知道您是否使用 Storyboard(如今大多数人都在使用)的情况下,您是否将触摸拖到您的视图中?这只是确认所有基地都被覆盖的次要措施。

-(void) viewDidLoad{

    UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(dismissKeyBoard:)];
    [self.view addGestureRecognizer:tap]; 

}

resignFirstResponder 是我通常拨打的电话,而不是 endEditing。

更新 我注意到您在dismissKeyboard 中调用了“发件人”。放下那个。

-(void) dismissKeyboard{//**NO SENDER**, then it should work

    [self.textField resignFirstResponder];

}

【讨论】:

  • @AmirAbbasKashani 你删除了 :sender 吗?
  • 是的,它确实有效!那是怎么发生的? ":sender" 是如何阻止调用 "dismissKeyBoard" 的?
  • 太棒了。我不确定哈哈。很高兴我能帮忙:-)
猜你喜欢
  • 1970-01-01
  • 2019-09-14
  • 1970-01-01
  • 2012-04-11
  • 2011-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-07
相关资源
最近更新 更多