4

私の質問は:What is the best way to implement "Hiding Keyboard while PickerView (which is inside the PopOver) is Visible"?

私が欲しいもの:

周りにあるビューが1つあります15 TextFields。15 のうち、たとえば 7 を使用してUIPickerView( に常駐UIPopOverController) を実装しDropDown Functionalityます。私の問題は、キーボードが表示されているときに をクリックするUITextFieldUIPickerView、キーボードが非表示にならないことです。これを実装する最良の方法は何ですか?

私が試したこと:

実装しようとしましたが、内部にある間inputViewだけ使用されます。それが私が財産を使うことができない理由だと思います。このQuestionによると、Apple の Bug です。UIPickerViewUIPickerViewUIPopOverControllerinputView

更新

ほら、 textField Delegates を使用してこれを実装できることを私は知っています。しかし、私はinputViewのプロパティをUITextField見つけました.

textField.inputView = pickerView;

しかし、私はUIPickerView内部を持っていますPopOver。では、これinputView propertyをどのように使用するのUITextFieldですか?

より良いアイデアはありますか?...

4

2 に答える 2

0

.h ファイル内のオブジェクトを次のように取得します。

id currentTextField;

このメソッドを .m ファイルに実装UITextField Delegateします。

- (void)textFieldDidBeginEditing:(UITextField *)textField {
    currentTextField = textField;
}
  • ファイル内txtField.delegate = selfのすべてのを作成することを忘れないでください。UITextFields

ボタンのタップを受け取ったらpickerView、まずそのボタンのクリック メソッドにステートメントを追加します。

[currentTextField resignFirstResponder];

ではごきげんよう!!!

于 2013-01-29T09:55:33.140 に答える
0

これを直接(のように)行うことはできないと思いますinputView。この簡単な回避策を試すことができます。

1) を置き換えてUITextFieldUIButtonセレクター ( buttonClicked:) に接続します。テキストフィールドのようにスタイルを設定できるようにするために使用UIButtonTypeCustomできます(レイヤーのbordeColor、borderWidth、cornerRadiusなどを設定します。)

2) このメソッドでは、inputView と-(void)buttonClicked:(id)sender同じものを replacement に切り替えます。通常のインスタンス変数で作成できますが、デリゲートとデータソースを設定することを忘れないでください。それをルートビュー(ポップオーバーでのショーの)に添付するか、すでに表示されているかどうかに応じて、アニメーション化(トグル)します。UIPickerViewUITextFieldUIViewControllerUIWindow

3) ボタンのテキストを ( を使用して[button setTitle:<selected_value> forState:UIControlStateNormal])UIPickerViewDelegateメソッドで更新します: `pickerView:didSelect...atIndex: - さらに、ここでピッカーを非表示にできます..

これが役立つことを願っています。

于 2013-01-29T10:45:02.657 に答える