无法将 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