2011-12-26 10 views
5

私のアプリケーションではUIPickerViewの値でUITextFieldを入力しなければなりません。iPhone:UITextFieldをタップしながらキーボードを隠すことはできますか?

私は2 UITextFieldsです。第一テキストフィールドの値で は、キーボード と第二テキストフィールド値でからフェッチされ、私はキーボードを隠し、ここUIPickerView

を表示する第二テキストフィールドをタップにそうUIPickerView

からフェッチされ、私はあなたのより良い参考のために私は何をすべきかを追加

- (void)textFieldDidBeginEditing:(UITextField *)textField 
{ 
     [pickerToolBar setHidden:NO];//shows toolbar 
     [pickerTime setHidden:NO];//shows UIPickerView 
     [textField resignFirstResponder]; 
} 

しかし、上記のコードを書いた後、キーボードは消えません。

あなたがどんな考えを持っているならば、plzは私を助けて...

答えて

0

UITextFieldをUIPickerに基づいて設定する場合は、単にUITextFieldとのユーザーのやり取りを無効にしないでください。それでもデータはそこに置くことができ、ユーザーはそれを変更することはできません。しかし、キーボードを隠したままにするには、UITextFieldがタッチされたときや変更されたときなどにUITextFieldを検出させ、最初のレスポンダを終了させることができます。

+1

私のUIPickerViewは、UITextFieldをタップして開く必要があります。 – iPhone

+1

willBeginEditingのオプションの下で、UIPickerViewを起動し、最初のレスポンダを辞める(キーボードを取り除く)ようにしてください。 –

+2

"willBegingEditing"はUITextfieldのこのメソッドですか? – iPhone

1

フォーカスがUITextFieldの内部にある間、キーボードを非表示にすることはできません...

あなたはどこのレベルでUIPickerを置く必要がありますあなたが値を選択する際に障害にならないように、キーボードの後ろに隠れません。

そして、UIPickerから値を選択したら、なぜUITextFieldをタップする必要があるのですか?あなたはUiTextFieldをタップしていないので、キーボードは表示されません...

乾杯!

1

テキストフィールドで編集可能なプロパティをFALSEまたはユーザーインタラクションを有効にして、プロパティをfalseに設定し、ピッカービューを開くボタンイベントでテキストフィールドと同じサイズのカスタムボタンを追加します。

+0

私はこれが最高の解決策だと思う – Aditya

2

try UITextfieldデリゲートメソッド。 texfield didBeginEditingメソッドに次のコードを挿入します。

[texfield resignfirstresonder]; 

テキストフィールドは編集をブロックし、キーボードは表示されません。 テキストフィールドデリゲートをファイル所有者に添付していることを確認してください。

+0

あなたはまた、応答者を辞任した後にあなたのUIpickerviewショーのメソッドを呼び出すことができますテキストフィールドのコードはこのようsomhowなります - (ボイド)textFieldDidBeginEditing:(UITextFieldの*)テキストフィールド {IF(テキストフィールド== URTEXTFIELD) {[テキストフィールドresignFirstResponder]。 [pickerview becomeFirstResponder]; } } – iCreative

1
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)]; 
[self.view addGestureRecognizer:gestureRecognizer]; 
gestureRecognizer.cancelsTouchesInView = NO; 


- (void) hideKeyboard 
{ 
    [textfieldname1 resignFirstResponder]; 
    [textfieldname2 resignFirstResponder]; 
} 
+0

もう少し説明できますか? – iPhone

+1

テキストフィールドにテキストを入力すると、UITapGestureRecongnizer関数が生成されます。あなたがテキストフィールドからそれを残し、テキストフィールドからビューをクリックすると、hideKeyboard関数が起動されます。キーボードは隠れています。 – akk

1

これらの回答はうまくいくかもしれませんが、誰もあなたに最善の答えを教えてくれませんでした。テキストフィールドをタップすると、キーボードビューをuipickerviewに置き換えることができます。

UITextField *field = [[UITextField alloc] init]; 
field.inputView = [[UIPickerView alloc] init]; 
関連する問題