ユーザーが を選択したときにキーボードを非表示にしようとしていますUITextField
。現在、3 つのテキスト フィールドがあります。2 つUIPickerView
(同じピッカーによって制御されます) とテキスト入力フィールドです。「戻る」またはバックグラウンドをクリックすると、resignFirstResponder
呼び出しでキーボードが消えます。
問題:
現在テキスト入力フィールドを編集していて、すぐに機能付きを選択するUITextField
とUIPickerView
、キーボードが消えません。私はすべての解決策を試して、壁に頭をぶつけているような気がします...
コード:
-(void)textFieldDidBeginEditing:(UITextField *)textField{
[pickerView setHidden:YES];
if (fldQuiver.editing == YES) {
[fldTitle resignFirstResponder];
[fldQuiver resignFirstResponder];
[pickerView setHidden:NO];
variabla = 1;
}else if (fldCategory.editing == YES) {
[fldTitle resignFirstResponder];
[fldCategory resignFirstResponder];
[pickerView setHidden:NO];
variabla = 2;
}
NSLog(@"variabla %d",variabla);
[pickerView reloadAllComponents];
}
どんな助けでも大歓迎です。前もって感謝します。
PRINCE の編集済みコード:
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField; // return NO to disallow editing.
{
//set logic for picker view here
if (textField == fldQuiver)
{
variabla = 1;
}
else if (textField == fldCategory) {
variabla = 2;
}
else
{
}
NSLog(@"variabla %d",variabla);
[pickerView reloadAllComponents];
if (textField == fldQuiver)
{
[fldTitle resignFirstResponder];
[pickerView setHidden:NO];
return NO;
}
else if (textField == fldCategory) {
[fldTitle resignFirstResponder];
[pickerView setHidden:NO];
return NO;
}
else
{
[pickerView setHidden:YES];
return YES;
}
}
また:私は「合成」して宣言しました@property
fldQuiver
and fldCategory
. 私は、、、のために持ってIBOutlet
いfldTitle
ます。fldQuiver
fldCategory
にはpickerView
、変数に基づく配列がロードされます。