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