2013-10-25 164 views
0

我想隱藏iOS應用程序中的鍵盤。我花了幾個小時尋找它,而且我嘗試了幾乎所有的東西,所以我非常絕望。在iOS中隱藏鍵盤不工作

我的代碼如下爲未來:

RNViewController.h

@interface RNViewController : UIViewController <UITextFieldDelegate> { 
    UITextField *textField; 
... 
} 

RNController.m

- (void)viewDidLoad { 
    textField.delegate = self; 
    textField.returnKeyType = UIReturnKeyDone; 
} 

- (BOOL)textFieldShouldReturn:(id)sender { 
    NSLog(@"Entering in textFieldShouldReturn "); 
    [textField resignFirstResponder]; 
    return YES; 
} 

- (BOOL)textViewShouldReturn:(id)sender { 
    NSLog(@"Entering in textViewShouldReturn "); 
    [textField resignFirstResponder]; 
    return YES; 
} 

- (IBAction)textFieldDoneEditing:(id)sender { 
     NSLog(@"Entering in textFieldDoneEditing "); 
     [sender resignFirstResponder]; 
} 

- (IBAction)textViewDoneEditing:(id)sender { 
    NSLog(@"Entering in textViewDoneEditing "); 
    [sender resignFirstResponder]; 
} 


- (BOOL)disablesAutomaticKeyboardDismissal { 
    return NO; 
} 

編輯:文本字段是dinamically創建這樣的:

- (void) showPreguntaTexto: (Pregunta *) pregunta { 
    UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(CGRectGetWidth(baseView.bounds)*0.1, offset + CGRectGetWidth(baseView.bounds)*0.05, CGRectGetWidth(baseView.bounds) - CGRectGetWidth(baseView.bounds) * 0.2 , CGRectGetWidth(baseView.bounds)*0.5)]; 

    textField.delegate = self; 

    [vistaAnterior addSubview:textField]; 
} 

我的視圖是baseView(帶有不改變的元素)和vistaAnterior,它具有內容(和textField)和更改。

嘗試此操作,它顯示輸入到textFieldShouldReturn,但鍵盤不會消失。

這是怎麼發生的?請幫忙!!

回答

1

退出文本字段的發件人而不是您的實例。 UITextField *textField不是一個IBOutlet(storyboard)或在代碼中創建的,因此textField是零(除非您在其他地方創建它並且未顯示該代碼)。

- (BOOL)textViewShouldReturn:(id)sender { 
    NSLog(@"Entering in textViewShouldReturn "); 
    [sender resignFirstResponder]; 
    return YES; 
} 
+0

謝謝你的男人,這個伎倆! Soooo感激! –

0

你有沒有設置文本字段委託在你的RNViewController從stroyboard。這可能是鍵盤沒有隱藏的原因。

+0

我沒有使用Storyboard,我在編輯這個問題 –