2015-05-14 58 views
0

當我在UITextFiled上顯示UIMenuViewController時,鍵盤也彈出。當顯示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]; 
+0

我想你可以設立觀察員監聽'UIMenuControllerWillShowMenuNotification',然後有一個叫'endEditing'方法對你的看法 –

+0

@LouisTur我添加[NSNotificationCenter defaultCenter ] addObserver:self selector:@selector(_textWillShowMenu :) name:UIMenuControllerWillShowMenuNotification object:nil];但我如何訪問textWillShowMenu中的視圖? –

+0

您可以調用任何對包含文本的視圖的引用,或者例如,如果您使用的是「UIViewController」,則可以調用'[self.view endEditing:YES]',調用頂層視圖將resignFirstResponder對於所有子視圖 –

回答

0
當你想隱藏鍵盤(在你的榜樣菜單項可見)隱藏鍵盤使用

[文本字段resignFirstResponder];

可以針對您的問題將解決

+0

resignFirstResponder將顯示鍵盤剛剛打開和關閉的輕彈效果。 –