我正在使用MMDrawerController作为辅助菜单。当我打开侧菜单时,我找不到在中央视图中关闭键盘的位置。
我试过了
sideMenuViewController的viewWillAppear方法编写viewWillAppear。addObserver in centerViewController,在sideMenuViewController的viewWillAppear方法中称为[self.view endEditing:YES]和postObserver。只是不起作用就因为这样..。

有人想办法解决这个问题吗?
发布于 2015-01-05 08:49:37
我找到了解决办法
在CentralView控制器中
#pragma mark - Button Handlers
-(void)leftDrawerButtonPress:(id)sender{
[self.mm_drawerController toggleDrawerSide:MMDrawerSideLeft animated:YES completion:nil];
[self.textfield resignFirstResponder];
} 试试这个方法。对我来说很管用
发布于 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语句:
else {
//hide keyboard when pan gesture start
[self.centerViewController.view endEditing:true];
self.startingPanRect = self.centerContainerView.frame;
}我给你的是从图书馆来的旧代码,只是为了得到更详细的解释:
else {
self.startingPanRect = self.centerContainerView.frame;
}使用此代码,启动pan手势时关闭键盘,如果侧菜单允许这样的pan手势,则所有属于当前centerViewController的子视图的视图都尝试resignFirstResponder。
我试图将这段代码放到另一种方法中,但是它的行为有点奇怪,因为在完成centerViewController的移动之后,动画完成块。所以我认为endEditing:在潘手势的开头是要走的路。
希望这能帮到你!
发布于 2015-01-05 07:17:05
对于这一点,您没有使用观察者,只需为您的IBOutlet属性设置UITextField的名称为"textfield“。
[self.textfield resignFirstResponder];当您绕过sideMenuViewController的viewWillAppear时添加这一行。
https://stackoverflow.com/questions/27774766
复制相似问题