2011-07-14 4 views
0

ユーザがテキストフィールドをタップしたときにピッカーを表示/表示する必要があります。つまり、キーボードの代わりにピッカーになるはずです。また、ピッカーの上に何らかの種類の「完了」ボタンがあり、ユーザがそれをクリックしてピッカーからの値がテキストフィールドにコピーされ、ピッカーが再び非表示になります。ポップアップUITextFieldをタップした時のUIPicker

私はウェブから多くのチュートリアルをチェックしましたが、本当に助けてくれる人はいませんでした。

正しい方向に私を指し示したチュートリアルが見つかりましたが、テキストフィールドをクリックするとキーボードが消えてしまいました。 Dismissing UIPickerView with Done button on UIToolBar @slev

アイデアをお持ちですか?

+0

これを行うための便利なサブクラスを作成しました。 https://github.com/CullenSUN/PickerTextField。もし誰かがそれを探しているなら、ここに投稿してください –

答えて

0

3.2より古いバージョンのiOSをターゲティングしていない場合は、簡単です。 UITextFieldのinputViewプロパティと「done」ボタンを含むUIToolbarをinputAccessoryViewとして割り当てるか、ピッカーとツールバーの両方をサブビューとして持つ単一のUIViewを作成して、intputViewとして割り当てることができますinputAccessoryViewはゼロにします)。どちらの方法でも、これは、テキストフィールドがアクティブになっているときに、通常のキーボードの代わりにピッカーを動かします。

詳細はthe documentationをご覧ください。

+0

Thx!それは働いた! :D私は上記のリンクから "viewDidLoad"と "pickerDoneClicked"コードを使用し、あなたが言ったのと同じように "viewDidLoad"に次の行を追加します: myTextField.inputView = myPickerView; ここで、ユーザーがテキストフィールドに入力しないようにするにはどうすればよいですか?テキストフィールドを有効にしないとマークすると、上記のコードは機能しません。 – Enyel

+0

@Enyel:キーボードが表示されていないと、ほとんどのユーザーはそれを入力することができません(外付けキーボードを使用している少数の人が入力できるかどうかを確認する機会はありませんでした)。しかし必要であれば、デリゲートのtextField:shouldChangeCharactersInRange:replacementString:メソッドからいつもNOを返すことができます。 – Anomie

関連する問題