2011-12-20 10 views
0

私の作成したプロファイルには、体重と生年月日の2つのテキストフィールドしかありません。ユーザが体重をタッチすると、キーボードに表示されます。しかし、ユーザーが生年月日に触れると、アクションシートに日付ピッカーが表示されます。ユーザが日付を選択し、完了ボタンを押すと、アクションシートは消えるが、キーボードは開いたままである。このキーボードを隠す方法はありません。私はresignFirstResponderメソッドを使用しましたが、運はありません。あなたがキーボードを非表示にしたい場合は、この操作を行う必要がありiPhoneキーボードをプログラムで辞退する

+2

何を試しましたか?いくつかのコードを投稿してください。 'resignFirstResponder'はそれについて正しい方法です。 – visakh7

+0

矢印をクリックして正しい答えをクリックします。将来的には、SOからの絶え間ない助けを得るために役立ちます。ありがとう。 – Sarah

答えて

4

[textfield resignFirstResponder]; 
+0

私はそれを試したが、キーボードは隠れていない。 –

+0

正しいテキストフィールドを辞退してもよろしいですか?テキストフィールド変数がnilであるか、選択されているテキストフィールドと異なるテキストフィールドを指している可能性があります。 resignFirstResponderを呼び出す前にNSLogoを使ってtextfieldの値を記録してみてください。 –

+0

ああ私は忘れていた[txtField becomeFirstResponder] –

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]今はうまくいく。あなたのサポートに感謝します –

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

それは完全に動作します。 –

関連する問題