的UITextField和UIPickerView
问题描述:
是否有可能被选中为UITextField当一个UIPickerView,而不是出现一个键盘? Interface Builder中的每个选项都是某种键盘。的UITextField和UIPickerView
我想我可以创建一个UIPickerView以编程方式创建一个,当UITextField注册一个touchUpInside事件,然后告诉UITextField resignFirstResponder,但这似乎有点破解。
有没有做到这一点的“官方”或更“正确”的方式?
谢谢!
答
您可以实现这个代码,并覆盖默认行为(即,显示键盘):
#pragma mark -
#pragma mark UITextFieldDelegate methods
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil
message:@"Bouh!"
delegate:nil
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
return NO;
}
而是呈现出UIAlertView中,你不妨展示一下自己的UIPickerView并做你的事。
@akosma美妙的想法!我没有意识到这会覆盖显示键盘。如果您要调用[super textFieldShouldBeginEditing:textField]来显示键盘,对不对? – 2010-01-03 17:15:57
不一定; textFieldShouldBeginEditing:是一种委托方法,不属于任何层次结构。您应该“返回YES”以显示键盘。在你的逻辑,那么,你应该决定是否要显示键盘(返回YES或NO的伎俩;) – 2010-01-03 17:18:39
谢谢akosma,我发现这纯属偶然,而从痛苦试图写一个替代键盘休息一会。拖延FTW! – willc2 2010-01-04 06:11:27