2010-01-03 77 views
3

是否有可能被选中为UITextField当一个UIPickerView,而不是出现一个键盘? Interface Builder中的每个选项都是某种键盘。的UITextField和UIPickerView

我想我可以创建一个UIPickerView以编程方式创建一个,当UITextField注册一个touchUpInside事件,然后告诉UITextField resignFirstResponder,但这似乎有点破解。

有没有做到这一点的“官方”或更“正确”的方式?

谢谢!

回答

6

您可以实现这个代码,并覆盖默认行为(即,显示键盘):

#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并做你的事。

+0

@akosma美妙的想法!我没有意识到这会覆盖显示键盘。如果您要调用[super textFieldShouldBeginEditing:textField]来显示键盘,对不对? – 2010-01-03 17:15:57

+0

不一定; textFieldShouldBeginEditing:是一种委托方法,不属于任何层次结构。您应该“返回YES”以显示键盘。在你的逻辑,那么,你应该决定是否要显示键盘(返回YES或NO的伎俩;) – 2010-01-03 17:18:39

+0

谢谢akosma,我发现这纯属偶然,而从痛苦试图写一个替代键盘休息一会。拖延FTW! – willc2 2010-01-04 06:11:27

相关问题