2010-01-03 78 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

相關問題