5

以下に示すiPhoneアプリを作成しています。

画面の最後にテキストフィールドがあります。同じ代理人を追加しました。テンキーなので、ボタンを別に追加して、ボタンをクリックするとキーボードが隠れるようにしました。

以下は私が持っているコードです:

.h

@interface SearchViewController : UIViewController<UITextFieldDelegate>

@property (retain, nonatomic) IBOutlet UITextField *textField006;
@property (retain, nonatomic) IBOutlet UIButton *doneButton;
- (IBAction)doneAction:(id)sender;

.m

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    NSLog(@"textFieldShouldReturn");
    return YES;
}

- (void)textFieldDidBeginEditing:(UITextField *)textField
{
    NSLog(@"textFieldDidBeginEditing");
    // Ensure the relevant text field is visible
    CGAffineTransform translation = CGAffineTransformIdentity;
    CGRect screenBound = [[UIScreen mainScreen] bounds];
    CGSize screenSize = screenBound.size;
    CGFloat screenHeight = screenSize.height;

    if (screenHeight==480 || screenHeight==568) {
            translation = CGAffineTransformMakeTranslation(0, -120);
        doneButton.hidden = NO;
        NSLog(@"line 3");
        [UIView beginAnimations:nil context:nil];
        self.view.transform = translation;
        [UIView commitAnimations];
    }
}

- (IBAction)doneAction:(id)sender {
    doneButton.hidden = NO;    
    doneButton.hidden = YES;
    [textField006 resignFirstResponder];
    [UIView beginAnimations:nil context:nil];
    self.view.transform = CGAffineTransformIdentity;
    [UIView commitAnimations];
    [self.textField006 resignFirstResponder];

}

キーボードが隠れないのはなぜですか?どうすれば非表示にできますか?

キーボード==小数点パッドリターンキー>>自動有効化リターンキー=チェックマーク付き

4

3 に答える 3

19

現在正しく非表示になっていない場合は、必ずendEditing:を使用してください。

endEditing:

「endEditing により、ビュー (またはその埋め込みテキスト フィールドの 1 つ) がファーストレスポンダー ステータスを辞任します。」

「このメソッドは、現在のビューと、現在ファーストレスポンダーであるテキスト フィールドのサブビュー階層を調べます。見つかった場合は、そのテキスト フィールドにファーストレスポンダーとして辞任するように求めます。force パラメーターが YES に設定されている場合、テキストはフィールドは求められることさえなく、辞任を余儀なくされます。」

したがって、次のように動作するはずです (ボタン クリック アクション メソッド内)。

[self.view endEditing:YES];
于 2013-03-20T10:55:59.227 に答える
0

作ることもできます[self.textField006 resignFirstResponder]

于 2013-03-20T11:10:47.273 に答える