2

CoreDataを使用するiPhoneアプリに取り組んでいます。ビューコントローラの1つを使用すると、ユーザーはコーヒーに関する情報を編集できます。UITextFieldには、コーヒーの種類を表す1つの「タグ」を入力できます。

ユーザーがUITextFieldのメイン領域をクリックした場合(新しいタグを入力するため)にキーボードを表示するようにUITextFieldを設定し、そのrightViewとしてボタンを使用して、ユーザーが選択できるUIPickerViewを表示したいと思います。すでに入力されている既知のタグのリストから、つまり:

---------------------------------------------
|This area should display keyboard | button |
---------------------------------------------

私が混乱しているのは、firstResponderキーボードとUIPickerViewを切り替えたり、ユーザーが前後にクリックした場合に元に戻したりする方法です。

確かに誰かがすでにこれを行っているので、これを設定する方法(またはiPhoneのUI要素を正しく使用している場合)に関するヒントは素晴らしいでしょう!ありがとう!

4

3 に答える 3

1

次のような 2 つの参照を使用して、アクティブなテキスト フィールドとピッカーを追跡できます。

UITextField *activeField;
UIPickerView *activePicker;

テキスト フィールドが編集を開始するたびに、そのフィールドを指すように activeField を割り当てます。ピッカーも同じです。また、問題のこの特別なテキスト フィールドへの参照が既にあると仮定します。

テキスト フィールドとピッカー ビューのイベント ハンドラーで、テキスト フィールドの編集の開始/終了時、およびピッカー ビューの表示/非表示時に何が起こるかを制御できるようになりました。他のテキスト フィールドがある場合は、activeField と比較して、特別なテキスト フィールドによってイベントが発生したかどうかを確認する必要があります。

ただし、連絡先アプリケーションではタグ付けシナリオが別の方法で実装されていることを思い出してください。これは標準的な方法であり、あなたにとってもはるかに簡単です。

于 2010-02-03T21:32:34.067 に答える
0

キーボードのカスタマイズ方法に関する記事はこちらです。UIKeyboard の独自のインスタンスを完全に宣言したり、サブクラス化したりすることはできないことに注意してください。そのため、唯一の希望は、キーボード ビューを見つけてそこから変更を加えることです。

于 2010-01-20T16:22:07.640 に答える
0

キーボードについては、デリゲート コールバックの becomeFirstResponder/resignFirstResponder に注意する必要があります。あなたの比喩が何であっても、完了または完了は、レスポンダーを辞任する必要がある場所です。

于 2010-01-20T16:32:05.187 に答える