2011-09-11 5 views
0

私は2つのテキストフィールドを持つアプリを持っています。今私の問題は、最初のユーザーが通常のテキストフィールドをタップすると言う。キーボードをポップアップ表示します。終了ボタンを選択せず​​に、日付フィールドをタップします。アクションシートがポップアップ表示されます(キーボードを外すことなく)。アクションシートを隠した後、ユーザーは他のテキストフィールドをタップし、キーボードのリターンキーをクリックしなければなりません。アクションシートがポップアップする場合はキーボードを隠す

アクションシートがポップアップする場合は、キーボードを非表示にしたいですか?

私のコードは、あなたがUITextFieldDelegateプロトコルメソッド- (void)textFieldDidEndEditing:(UITextField *)textFieldを実装しようとしたことがあり

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 


    if([textField isEqual:txtdob]) 
    { 

     [textField resignFirstResponder]; 


     actionSheet = [[UIActionSheet alloc] initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil]; 
     [actionSheet setActionSheetStyle:UIActionSheetStyleBlackTranslucent]; 
     // txtdob.inputView=actionSheet; 
     CGRect pickerFrame = CGRectMake(0, 40, 0, 0); 

     datepicker=[[UIDatePicker alloc] initWithFrame:pickerFrame]; 
     datepicker.datePickerMode = UIDatePickerModeDate; 
     //[datepicker setMinimumDate:minDate]; 
     [datepicker addTarget:self action:@selector(changeDateInLabel:) forControlEvents:UIControlEventValueChanged]; 

     [actionSheet addSubview:datepicker]; 
     [datepicker release]; 

     UISegmentedControl *closeButton = [[UISegmentedControl alloc] initWithItems:[NSArray arrayWithObject:@"Done"]]; 
     closeButton.momentary = YES; 
     closeButton.frame = CGRectMake(260, 7.0f, 50.0f, 30.0f); 
     closeButton.segmentedControlStyle = UISegmentedControlStyleBar; 
     closeButton.tintColor = [UIColor blueColor]; 
     [closeButton addTarget:self action:@selector(dismissActionSheet) forControlEvents:UIControlEventValueChanged]; 
     [actionSheet addSubview:closeButton]; 
     [closeButton release]; 

     [actionSheet showInView:self.view]; 

     [actionSheet setBounds:CGRectMake(0, 0, 320, 485)]; 

    } 
} 

答えて

0

下回っているのですか?このメソッドは、UITextFieldがフォーカスを失うたびに呼び出されます。たとえば、ユーザーがビュー内の別の要素をタップする場合などです。

は、デリゲートクラスでこれを入れてみてください:

- (void)textFieldDidEndEditing:(UITextField *)textField { 
    [textField resignFirstResponder]; 
} 

また、テキストフィールドデリゲートは、メソッドの上にこれを実装するクラスに設定されていることを確認してください。お役に立てれば!

+0

申し訳ありませんインチ –

1

コールこのそれは私のために動作しませんでしたあなたのViewController

[self.view endEditing:NO]; 
関連する問題