2011-12-05 4 views
2

これは初心者の質問に聞こえるかもしれませんが、私はiOS開発者が初めてです。キーボードはUITextFieldで解読されません

プラットフォーム:iPadの

私はUITextFieldのとのUITableViewを持って、彼らは2つですとしましょう。 最初の仮想キーボードを押すと、ユーザーが2番目のUITextFieldをタップすると仮想キーボードが非表示になり、データピッカービューが表示されます。

だから私はそれをやった。私はそれがキーボードを表示しますが、私はそれを隠していない二番目に切り替えたときに最初のUITextFieldに初めてクリック

-(void) textFieldDidBeginEditing:(UITextField *)textField { 
    if (textField.tag == PICKER_VIEW_TAG) { 
     [textField resignFirstResponder]; 
    } else { 
     ... 
    } 
} 

-(void) textFieldDidEndEditing:(UITextField *)textField 
{ 
    if (textField.tag != PICKER_VIEW_TAG) { 
     ... 
    } 
} 

- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField 
{ 
    if (textField.tag == PICKER_VIEW_TAG) { 
     [self countriesPickerView]; 
    } 
    return YES; 
} 

-(BOOL)textFieldShouldReturn:(UITextField *)textField 
{ 
    if (textField.tag == PICKER_VIEW_TAG) { 
     [textField resignFirstResponder]; 
    } else { 
     ... 
    } 
    return YES; 
} 

だから今の質問、。どうして ?これを解決する方法は?

更新:対応するtextFieldが選択されていませんが、辞任が行われます。キーボードは隠されていません...なぜこれが起こりますか?

+0

あなたのtexfieldの代理人を設定し、デリゲートメソッドが呼び出されていることを確認しましたか? – matsr

+1

はい私はそれをしました... – deimus

答えて

1

問題はtextFieldShouldReturnにあります。アクションを完了させたい場合は、最初のレスポンダを辞める間にアクションを返すことができます。

[textField resignFirstResponder]; 
return YES; 
+0

更新されたコードは、キーボードを拳UITextFieldに表示させた後も、キーボードを隠していない2番目のものをクリックすると、同じ効果が残ります。 – deimus

+0

私はUITextFieldDelegateをヘッダファイルに追加して、これらのオーバーライドされたメソッドを呼び出すことを知っていると仮定していますか? –

+0

確かに、私はそれをヘッダに追加しました – deimus

1

入力を受け取るために、キーボード以外のビューを表示するUITextFieldinputViewプロパティを設定します。この場合、テキストフィールドのinputViewUIDatePickerのインスタンスに設定します。ピッカーは自動的に同じキーボードアニメーションで表示され、一連のコードを削除します。 Win/win。

関連する問題