无法将 UITapGestureRecognizer 添加到 UITabbarController 内的 UITableViewController

Posted

技术标签:

【中文标题】无法将 UITapGestureRecognizer 添加到 UITabbarController 内的 UITableViewController【英文标题】:Can't add UITapGestureRecognizer to UITableViewController Inside a UITabbarController 【发布时间】: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。我希望你尝试我的答案 【参考方案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];


【讨论】:

***.com/questions/8785184/… @AmirAbbasKashani 你删除了 :sender 吗? 是的,它确实有效!那是怎么发生的? ":sender" 是如何阻止调用 "dismissKeyBoard" 的? 太棒了。我不确定哈哈。很高兴我能帮忙:-)

以上是关于无法将 UITapGestureRecognizer 添加到 UITabbarController 内的 UITableViewController的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server Management Studio 无法将类型为“System.__ComObject

为啥我无法正确获取图像数据或无法将数据发送到服务器?

无法将 createdAt 和 updatedAt 保存为日期时间值,也无法将后端保存为前端

C# 无法将类型为“System.Byte[]”的对象强制转换为类型“System.Data.DataTable

无法将类型为“System.Collections.Generic.List`1[EPMS.Domain.SingleItem]”的对象强制转换为类型“EPMS

无法将 .json 文件从 CSV 下载到 JSON 转换并且无法将 JSON 转换为 CSV