2

2 つのテキスト フィールドがあるビューを実装しました。最初のテキスト フィールドで、ユーザーがクリックすると、ピッカー ビューが表示されます。ユーザーが他のテキスト フィールド キーボードをクリックすると、キーボードが表示されます。ただし、ユーザーが 2 番目のテキスト フィールドから最初のテキスト フィールドに移動すると、キーボードが表示され、このキーボードの背面にピッカー ビューがあります。ユーザーがキーボードの完了ボタンを押さずに 2 番目のテキストフィールドから最初のテキストフィールドに移動すると、このキーボードを辞任できません。

 -(void)textFieldDidBeginEditing:(UITextField *)myTextField
  {  
  if(myTextField == firsttextfield)
  {
    [firsttextfield resignFirstResponder];
    medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)];
    medicinetypearray = [[NSMutableArray alloc]initWithObjects:@"Capsules",@"Eyedrops", 
    @"Eardrops",@"Nosedrops",@"Inhaler",@"Syrup",@"Injections",@"Oils",@"Ointment", nil];
    medicationtypepicker.delegate = self;
    medicationtypepicker.showsSelectionIndicator = YES;
    medicationtypepicker.autoresizingMask = UIViewAutoresizingFlexibleWidth;
    [self.view addSubview:medicationtypepicker];
   }

}

   -(BOOL)textFieldShouldReturn:(UITextField *)textField
    {
     [secondtextfield resignFirstResponder];
     return YES;
     }

ここに画像の説明を入力

誰かがキーボードを却下する考えを持っている場合。解決策を提供してください。

どうもありがとうございました。

4

3 に答える 3

3

問題の正しい解決策は、最初のテキスト フィールドのinputViewプロパティをピッカー ビューに設定することです。

メディケーションの詳細画面が表示されたら、View Controller でピッカーを作成して構成し、そのピッカーを最初のテキスト フィールドの に割り当てますinputView。次に、ユーザーがあるフィールドから別のフィールドに移動すると、キーボードまたはピッカーが自動的に表示されます。ファーストレスポンダーの辞任などでふざける必要はありません。

于 2011-12-12T11:22:10.270 に答える
1

がアクティブであると判断した後、secondTextFieldにも伝えてみてください。resignFirstResponderfirstTextField

 -(void)textFieldDidBeginEditing:(UITextField *)myTextField
  {  
     if(myTextField == firsttextfield)
     {
        [firsttextfield resignFirstResponder];
        [secondtextfield resignFirstResponder];
        medicationtypepicker = [[UIPickerView alloc] initWithFrame:CGRectMake(0,190,320,215)];
        ....
      }
   }  
于 2011-12-12T11:17:38.307 に答える
0

テキスト フィールドのプロパティ「Did End on Exit」が「ファイル所有者」に適切に関連付けられていることを確認してください。次に使用します。-(void)textFieldDidBeginEditing:(UITextField *)myTextField
{ if(myTextField == firsttextfield)
{
...
[secondtextfield rejectFirstResponder]; ..... } }

于 2011-12-12T12:09:38.520 に答える