0

「保存」UIButtonを使用してUIViewにいくつかのUITextFields(UITableViewCells内)があります。ユーザーが[保存]ボタンをクリックしたときに、UITextFieldsで基本的な検証を行いたいと思います。

textFieldDidEndEditingをオーバーライドして、各UITextFieldデータをインスタンス変数に保存しました。ただし、ユーザーがUIKeyboardの[戻る]ボタンをクリックする前、または別のUITextFieldをクリックする前に保存ボタンをクリックすると、最後のUITextFieldのデータがインスタンス変数に保存されることはなく、検証は常に失敗します。

「onBlur」(これはJSのものだとわかっています)タイプのイベントをトリガーして、UITextFieldの文字列をインスタンス変数に保存する方法を探しています。

UITextFieldDelegateプロトコルを調べましたが、このようなものは見当たりません。

私が見逃しているかもしれない方法はありますか?

4

2 に答える 2

1

//これを試してください//改行文字が返される場合

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{   
    // enter closes the keyboard
    if ([string isEqualToString:@"\n"])
    {
        [textField resignFirstResponder];
        return NO;
    }
    return YES;
}

トリガーします

- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
    [textField resignFirstResponder];
    // Call webservice
    return YES;
}
于 2013-01-24T10:14:15.730 に答える
1

でトリガーtextFieldDidEndEditingするにUITextFieldは、電話する必要があります

[_txt resignFirstResponder];

_txtあなたはUITextField

_txtへの参照がなく、辞任するためにファーストレスポンダーを見つける必要がある場合は、この質問の解決策を使用できます。プライベートAPIを使用せずに現在のファーストレスポンダーを取得します。

次に、呼び出す代わりに

[_txt resignFirstResponder];

あなたは電話します

[self.view findAndResignFirstResponder];
于 2012-06-09T16:25:20.200 に答える