显示 UIMenuViewController 时隐藏键盘
Posted
技术标签:
【中文标题】显示 UIMenuViewController 时隐藏键盘【英文标题】:Hide keyboard when UIMenuViewController is shown 【发布时间】:2015-05-14 00:16:54 【问题描述】:当我在UITextFiled
上显示UIMenuViewController
时,键盘也会弹出。
想知道当UIMenuViewController
可见时是否有办法隐藏键盘。
我使用下面的代码来显示菜单。
NSArray *buttons = items;
NSMutableArray *menuItems = [NSMutableArray array];
for (NSString *buttonText in buttons)
NSString *sel = [NSString stringWithFormat:@"magic_%@", buttonText];
[menuItems addObject:[[UIMenuItem alloc]
initWithTitle:buttonText
action:NSSelectorFromString(sel)]];
UIMenuController *menuCont = [UIMenuController sharedMenuController];
[menuCont setTargetRect:view.frame inView:view.superview];
menuCont.arrowDirection = UIMenuControllerArrowDown;
menuCont.menuItems = menuItems;
[menuCont setMenuVisible:YES animated:YES];
【问题讨论】:
我想你可以设置一个观察者来监听UIMenuControllerWillShowMenuNotification
,然后在你的视图中调用endEditing
的方法
@LouisTur 我添加了 [[NSNotificationCenter defaultCenter]addObserver:self 选择器:@selector(_textWillShowMenu:) name:UIMenuControllerWillShowMenuNotification object:nil];但是如何访问 textWillShowMenu 中的视图?
您可以调用对包含文本的视图的任何引用,或者例如,如果您使用UIViewController
,您可以调用[self.view endEditing:YES]
,调用***视图将resignFirstResponder对于所有子视图
【参考方案1】:
当您想隐藏键盘时(在您的示例菜单项可见)以隐藏键盘使用 [textField resignFirstResponder];
愿你的问题能解决
【讨论】:
resignFirstResponder 将显示键盘刚刚打开和关闭的轻弹效果。以上是关于显示 UIMenuViewController 时隐藏键盘的主要内容,如果未能解决你的问题,请参考以下文章
为啥在HUD显示之前显示警报时不显示MBProgressHUD?
点击时突出显示 tableview 单元格,按下警报控制器操作按钮时取消突出显示