首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用侧菜单MMDrawerController关闭键盘

用侧菜单MMDrawerController关闭键盘
EN

Stack Overflow用户
提问于 2015-01-05 06:58:26
回答 4查看 692关注 0票数 0

我正在使用MMDrawerController作为辅助菜单。当我打开侧菜单时,我找不到在中央视图中关闭键盘的位置。

我试过了

  1. sideMenuViewControllerviewWillAppear方法编写viewWillAppear
  2. addObserver in centerViewController,在sideMenuViewControllerviewWillAppear方法中称为[self.view endEditing:YES]postObserver

只是不起作用就因为这样..。

有人想办法解决这个问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-01-05 08:49:37

我找到了解决办法

在CentralView控制器中

代码语言:javascript
复制
#pragma mark - Button Handlers
-(void)leftDrawerButtonPress:(id)sender{
    [self.mm_drawerController toggleDrawerSide:MMDrawerSideLeft animated:YES completion:nil];
    [self.textfield resignFirstResponder];
} 

试试这个方法。对我来说很管用

票数 2
EN

Stack Overflow用户

发布于 2015-12-02 15:57:01

今天我遇到了同样的问题:)

我花了几个小时调试MMDrawer库,并找到了某种解决方案。我的解决方案包括两个步骤:

1)在MMDrawerController.m文件中--在方法的实现中:-(void)toggleDrawerSide:(MMDrawerSide)drawerSide animated:(BOOL)animated completion:(void (^)(BOOL finished))completion添加在方法的开头,代码如下:[self.centerViewController.view endEditing:true];。使用此代码,您在点击菜单汉堡时关闭键盘-所有视图都是当前centerViewController的子视图,尝试使用resignFirstResponder。

2)在MMDrawerController.m文件中-在方法的实现中:-(void)panGestureCallback:(UIPanGestureRecognizer *)panGesture用以下代码替换case UIGestureRecognizerStateBegan的case语句:

代码语言:javascript
复制
else {
     //hide keyboard when pan gesture start
     [self.centerViewController.view endEditing:true];

     self.startingPanRect = self.centerContainerView.frame;
}

我给你的是从图书馆来的旧代码,只是为了得到更详细的解释:

代码语言:javascript
复制
else {
     self.startingPanRect = self.centerContainerView.frame;
}

使用此代码,启动pan手势时关闭键盘,如果侧菜单允许这样的pan手势,则所有属于当前centerViewController的子视图的视图都尝试resignFirstResponder。

我试图将这段代码放到另一种方法中,但是它的行为有点奇怪,因为在完成centerViewController的移动之后,动画完成块。所以我认为endEditing:在潘手势的开头是要走的路。

希望这能帮到你!

票数 3
EN

Stack Overflow用户

发布于 2015-01-05 07:17:05

对于这一点,您没有使用观察者,只需为您的IBOutlet属性设置UITextField的名称为"textfield“。

代码语言:javascript
复制
[self.textfield resignFirstResponder];

当您绕过sideMenuViewController的viewWillAppear时添加这一行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27774766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档