0

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;
}

編集: textField は、次のように動的に作成されます。

- (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 (変更されない要素を含む) と、コンテンツ (および textField) と変更を含む vistaAnterior です。

これを試してみると、textFieldShouldReturn に入力したことは示されますが、キーボードは消えません。

なぜこうなった??助けてください!!

4

2 に答える 2

1

インスタンスではなく、テキストフィールドの送信者を辞任してください。UITextField *textFieldIBOutlet (ストーリーボード) ではないか、コードで作成されたものではないためtextField、nil です (別の場所で作成し、コードを表示しなかった場合を除きます)。

- (BOOL)textViewShouldReturn:(id)sender {
     NSLog(@"Entering in textViewShouldReturn ");
    [sender resignFirstResponder];
    return YES;
}
于 2013-10-25T18:00:10.753 に答える