1

私のコードは

 -(BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
 NSLog(@"%@",petTypeTextFeild.text);

return YES;
}

「a」と入力すると何も出力されません次の文字「s」と入力すると「a」が出力されますフルテキストが必要です。

textFinishChangeのような他のメソッドはありますか?ありがとうございました。

4

3 に答える 3

3

以下を使用してください。

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *newString = [textField.text stringByReplacingCharactersInRange:range withString:string];
    NSLog(@"%@",newString);
    return YES;
}
于 2013-01-30T07:15:45.117 に答える
1

そのメソッドでは、全文を取得することはできません。「はい」を返すと、その特定の文字のみが許可され、「いいえ」を返すと、テキストを変更できなくなります。そして、このメソッドを使用して完全なテキストを取得します。

- (void)textFieldDidEndEditing:(UITextField *)textField
于 2013-01-30T07:11:50.613 に答える
1

これは、textFieldが実際に値を変更する前に呼び出されるデリゲートです。

 - (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string

そのため、古い値を取得しているので、この行を使用して正確な値を取得する必要があります

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
NSString *str = [textField.text stringByReplacingCharactersInRange:range withString:string];
NSLog(@"%@",str);
return YES;
}
于 2013-01-30T07:25:54.663 に答える