Objective c UIPickerView键盘错误的UITextField

Objective c UIPickerView键盘错误的UITextField,objective-c,uitextfield,uipickerview,Objective C,Uitextfield,Uipickerview,我只是想问一下,当按下UITextField时,如何防止键盘弹出?我有一个UITextField和UIPickerView如果我第一次按UITextField,它会显示UIPickerView,但是在我选择UIPickerView后,再按文本字段,而不是再次显示UIPickerView,它会显示键盘吗?我在我的UITextField上有这个方法,当您单击它时,它会显示UIPickerView: - (IBAction)clickText:(id)sender { int tag = [(

我只是想问一下,当按下
UITextField
时,如何防止键盘弹出?我有一个
UITextField
UIPickerView
如果我第一次按
UITextField
,它会显示
UIPickerView
,但是在我选择
UIPickerView
后,再按文本字段,而不是再次显示
UIPickerView
,它会显示键盘吗?我在我的
UITextField
上有这个方法,当您单击它时,它会显示
UIPickerView

- (IBAction)clickText:(id)sender
{
    int tag = [(UITextField*)sender tag];
    self.myPicker.hidden = NO;
    selectedTable = tag;
    [sender resignFirstResponder];
    float yy = 10;
    switch (tag) {
        case 0: yy = self.txtLeasename.frame.origin.y + self.myPicker.frame.size.height;
            break;
        case 1: yy = self.txtFeet.frame.origin.y + self.myPicker.frame.size.height;
            break;
        case 2: yy = self.txtInches.frame.origin.y + self.myPicker.frame.size.height;
            break;
        default:
            break;
    }
}

如何修复这种错误?多谢各位

实现此方法,不要忘记将textfield.delegate分配给控制器

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {
    // Check if the given textfield is your textfield with the date picker.
    if (textField.tag == 99) {
       // Then add your picker to your view
       UIDatePicker *pv = [[UIDatePicker alloc] initWithFrame:CGRectMakeZero];
       [self.view addSubview:pv]; 

       // And return NO
       return NO; // Return NO prevents your Textfield from showing the Keyboard
    }

    return YES;

}
这应该适合您:

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField {

    int tag = textField.tag;
    selectedTable = tag;
    float yy = 10;

    switch (tag) {
        case 0: 
            self.myPicker.hidden = NO;
            return NO;

        case 1:
            self.myPicker.hidden = NO;
            return NO;

        case 2:
            self.myPicker.hidden = NO;
            return NO;

        default:
            self.myPicker.hidden = YES;
            return YES;

        }        
}

你在找这个吗

因此,只需在
viewDidLoad
或其他位置为
UITextField
设置适当的
inputView
。比如:

self.myTextField.inputView = self.myPicker

这会影响我的所有文本字段。。如何在单个文本字段上实现此功能?或者2可能?此函数是UITextField的委托函数。只要ViewController中的UITextField开始编辑,就会调用它。(如签名所示)。这就是为什么你必须检查给定的文本字段是否是你想要的文本字段。在我上面的回答中,我使用
标记
属性。如果要影响2个文本字段,可以扩展
If
语句。可能:
if(textField.tag==99 | | textField.tag==12)
。我在CGRectMakeZero上遇到一个错误,“使用未声明的标识符”?我怎样才能解决这个问题。对不起,我只是新来的。对不起,是我的错。这是正确的
CGRectMake(CGRectZero)
Ok就是这样:
[[UIDatePicker alloc]initWithFrame:CGRectZero]
self.myTextField.inputView = self.myPicker