1

私は、を持っていますUITextField、そして押されるとUIPickerView、値を選択するために現れます。UIPickerView値を選択したら、を却下するにはどうすればよいですか。別のスレッドの誰かがテキストフィールドに教えてくれましresignFirstResponderたが、私のコードは機能していません。何か案は?注:2つのテキストフィールドとUIピッカーがあるため、「if」「else」ステートメントがあります。

- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
    if (textField == self.ageTextField)
    {
        [ageTextField resignFirstResponder];
        [agePickerView removeFromSuperview];
        return YES;
    }
    else
    {
        [relationshipTextField resignFirstResponder];
        [relationshipPickerView removeFromSuperview];
        return YES;
    }
}
4

3 に答える 3

0

問題を解決する可能性がある次のコードを試してください。

- (BOOL)textFieldShouldReturn:(UITextField *)textField 
 {
     if (textField == self.ageTextField) 
     {
         [ageTextField resignFirstResponder];
     } 
     else 
     {
         [relationshipTextField resignFirstResponder];
     }
     [pickerView removeFromSuperview];
     return YES; 
 }

または、次の方法でキーボードを再登録しますUIPickerView

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
于 2012-12-18T05:40:43.400 に答える
0

以下のように UIPickerViewDelegate メソッドで UITextField を再署名してみてください。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component {
    [self.ageTextField resignFirstResponder];
    pickerView.hidden = YES; //Show the pickerview again when you neeed it
}
于 2012-12-18T05:41:33.690 に答える
0

UIPickerViewDelegate プロトコルを実装し、次のメソッドを実装します。

- (void) pickerView: (UIPickerView*) pickerView
       didSelectRow: (NSInteger)     row
        inComponent: (NSInteger)     component
{
  [self.ageTextField resignFirstResponder];
}
于 2012-12-18T05:43:29.437 に答える