2011-07-14 31 views
0

我需要當用戶點擊一個文本框來顯示/顯示選擇器敲擊時,我的意思是,它應該會出現一個選擇器,而不是鍵盤。另外,選擇器上方有一些「完成」按鈕,以便用戶點擊該按鈕,並將選擇器的值複製到文本框,並重新隱藏選擇器。彈出UIPicker上的UITextField

我檢查從網上很多教程,但沒有發現任何人,可以真正幫助我。

我發現了一個教程,我指出了正確的方向,但我仍然失蹤的文本框,當點擊消失鍵盤。 Dismissing UIPickerView with Done button on UIToolBar通過@slev

任何想法?

+0

我剛剛創建了一個方便的子類來執行此操作。 https://github.com/CullenSUN/PickerTextField。在這裏發佈,如果有人正在尋找它 –

回答

0

如果您的目標版本不是3.2以前的iOS版本,那很容易。您可以指定UIPickerView作爲的UITextField的inputView財產和包含「完成」按鈕,爲inputAccessoryView的UIToolbar,或者你可以做出既具有選擇器和工具欄作爲子視圖單一的UIView並分配作爲intputView(並將inputAccessoryView作爲零)。無論哪種方式,當文本字段被激活時,這將使您的選取器代替普通鍵盤進行動畫處理。

更多這方面的細節在the documentation可用。

+0

Thx!工作! :D我從上面的鏈接中使用了「viewDidLoad」和「pickerDoneClicked」代碼,並且在「viewDidLoad」中添加了以下行: myTextField.inputView = myPickerView; 現在,我該如何阻止用戶輸入文本框?如果我將textfield標記爲未啓用,那麼上面的代碼不起作用。 – Enyel

+0

@Enyel:沒有鍵盤出現,大多數用戶將無法輸入它(我沒有機會檢查是否有少數外接鍵盤仍然可以輸入)。但是,如果有必要,您可以始終從委託的textField返回NO:shouldChangeCharactersInRange:replacementString:method。 – Anomie