请问我有几个小时没有找到解决方案而且没有找到解决方案并为此向你致意:)
我有UIPickerView,当用户点击UITextField时,必须从视图的底部显示(这是我的应用程序要求让我做的事情),所以我实现了这个方法来捕获文本字段的触摸事件:
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
UITouch *touch;
touch=[touches anyObject];
CGPoint point=[touch locationInView:self.view];
if(CGRectContainsPoint([typeCarburantTextField frame],point))
{
[self pickerTypeCarburantsShow];
}
}
这个方法可以防止用户点击文本字段时显示键盘:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField{
return NO;
}
pickerTypeCarburantsShow
-(IBAction)pickerTypeCarburantsShow{
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
CGAffineTransform transform=CGAffineTransformMakeTranslation(0, 240);
pickerViewTypesCarburants.transform=transform;
[self.view addSubview:pickerViewTypesCarburants];
[UIView commitAnimations];
}
我的所有IB连接都非常好,但是当我运行并且我点击UITextField键盘没有出现但是我没有看到选择器显示 pleaaaase help,thx提前:)
答案 0 :(得分:1)
您的PickerView是否同时设置了Delegate和DataSource?它不会出现。
答案 1 :(得分:1)
你可能想要的可能就是这个......
UITextField具有此属性
inputView
当文本字段成为第一个响应者时显示的自定义输入视图。
@property (readwrite, retain) UIView *inputView
讨论 如果此属性中的值为nil,则文本字段在成为第一响应者时显示标准系统键盘。为此属性分配自定义视图会导致显示该视图。
此属性的默认值为nil。
因此,要显示另一个视图而不是键盘,只需设置该视图,在本例中为uipickerview或其容器作为textfield的inputView ...
例如,要显示一些pickerview而不是键盘,您可能需要
textView.inputView = [[UIPickerView alloc] initWithFrame:CGRectMake(...)];
答案 2 :(得分:0)
我的问题已解决,所以问题出现在UITextField委托方法中,我实现了错误的方法:
-(BOOL)textFieldShouldReturn:(UITextField *)textField{
[textField resignFirstResponder];
return YES;
}
相反,它应该是这个方法来显示UIPickerView:
- (void)textFieldDidBeginEditing:(UITextField *)textField{
[textField resignFirstResponder];
[self pickerTypeCarburantShow];
}
其中pickerTypeCarburantShow
是一个IBAction方法,它应该为整个UIPickerView视图设置动画。希望这个帮助谁在同一个问题上挣扎:)