2011-12-20 109 views
0

在我的創建配置文件中,我只有兩個文本字段:體重和出生日期。當用戶觸摸重量時,鍵盤顯示。但是,當用戶觸摸出生日期時,日期選擇器會出現在操作表中。當用戶選擇日期並按完成按鈕時,操作表會消失,但鍵盤保持打開狀態。而且沒有辦法隱藏這個鍵盤。我已經使用resignFirstResponder方法,但沒有運氣。以編程方式辭退iPhone鍵盤

+2

你有什麼試過?發佈一些代碼。 'resignFirstResponder'是正確的解決方法。 – visakh7 2011-12-20 06:58:57

+0

單擊箭頭以正確單擊答案。它將在未來幫助你從SO獲得持續的幫助。謝謝。 – Sarah 2011-12-20 12:19:42

回答

4

你需要做的這個時候你想隱藏鍵盤:

[textfield resignFirstResponder]; 
+0

我試過了,但鍵盤沒有隱藏。 – 2011-12-20 07:04:33

+0

你確定你要辭職嗎?可能是textfield變量爲零,或者指向與所選內容不同的文本字段。嘗試在調用resignFirstResponder之前使用NSLogo記錄textfield的值。 – 2011-12-20 08:36:08

+0

哦,我忘了[txtField becomeFirstResponder] – 2011-12-20 12:17:43

1

是否包含方法:

-(BOOL) textFieldShouldReturn:(UITextField *)textField{ 

    [textField resignFirstResponder]; 
    return YES; 
} 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 
{ 
    UITouch *touch = [[event allTouches] anyObject]; 
    if ([txtComment isFirstResponder] && [touch view] != txtComment) 
    { 
     [txtComment resignFirstResponder]; 
    } 
    [super touchesBegan:touches withEvent:event]; 
} 
+0

我已經使用了這兩種方法。哦,我忘了[txtField becomeFirstResponder]現在它的工作正常。感謝您的支持 – 2011-12-20 12:18:21

0
-(void) ViewDidLoad 
{ 

// your some codes 

    UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; 
    [self.view addGestureRecognizer:gestureRecognizer]; 
    gestureRecognizer.cancelsTouchesInView = NO; 
} 

- (void) hideKeyboard 
{ 
    [textfiledname1 resignFirstResponder]; 
    [textfieldname2 resignFirstResponder]; 
} 
1

[[[UIApplication sharedApplication] keyWindow] endEditing:YES];會爲你工作。

+0

它完美的工作。 – 2011-12-20 12:18:33