0

我的头文件

MyClass.h
@interface MyClass : UIViewController<UITextFieldDelegate>
{
}
@property (retain, nonatomic) IBOutlet UITextField *customValue;

MyClass.m

- (void)viewDidLoad
{
    customValue.delegate=self;
}
- (void)textFieldDidBeginEditing:(UITextField *)customValue
{
    NSLog(@"custom tips value %@",customValue.text);
}

我的 NSLog 正在打印消息,但customValue.text没有显示并且显示为空。

编辑 1 我需要在用户输入值时获取在文本文件中输入的值

4

6 回答 6

2

textFieldDidBeginEditing顾名思义,当您开始在 textField 上进行编辑时,它将起作用。

为了满足您的要求,您需要使用shouldChangeCharactersInRange委托方法。

- (BOOL)textField:(UITextField *)e shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    NSString *substring = textField.text;
    substring = [substring stringByAppendingString:string];
    NSLog(@"Text : %@",substring);
    return YES;
}

textFieldDidBeginEditing

告诉代理指定文本字段的编辑开始。

- (void)textFieldDidBeginEditing:(UITextField *)textField Parameters

文本域

The text field for which an editing session began.

讨论

此方法通知委托指定的文本字段刚刚成为第一响应者。您可以使用此方法来更新您的委托的状态信息。例如,您可以使用此方法显示在编辑时应该可见的覆盖视图。

委托执行此方法是可选的。可用性

Available in iOS 2.0 and later.

在 UITextField.h 中声明

文本字段:shouldChangeCharactersInRange:replacementString:

询问委托人是否应该更改指定的文本。

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

参数

文本域

The text field containing the text.

范围

The range of characters to be replaced 

细绳

The replacement string. 

返回值

如果应替换指定的文本范围,则为 YES;否则,不保留旧文本。讨论

每当用户在文本字段中键入新字符或删除现有字符时,文本字段都会调用此方法。可用性

Available in iOS 2.0 and later.

在 UITextField.h 中声明

更多检查UITextFieldDelegate

于 2012-12-04T10:55:21.303 回答
1

这是因为textFieldDidBeginEditing:在用户第一次触摸 textField 时调用。

textField在用户更改时获取 的文本,请将“Editing Changed”事件连接到文件所有者的 IBAction。

于 2012-12-04T10:13:23.583 回答
1

用这个

- (BOOL)textField:(UITextField *)customTipsValue shouldChangeCharactersInRange:(NSRange)range 
 replacementString:(NSString *)string
{
NSLog(@"textfield value %@",customTipsValue.text);
return YES;
}// return NO to not change text
于 2012-12-04T10:23:30.720 回答
0

你有没有注意到这个方法

- (void)textFieldDidBeginEditing:(UITextField *)customTipsValue

当您开始编辑 textField 时调用,而不是在您输入字符时调用。

在此处查看更多信息:

UITextField 参考

于 2012-12-04T10:14:11.667 回答
0

当它开始编辑模式时,只需设置清除文本字段为否..

- (void)viewDidLoad
{
       customValue.delegate=self;
       [customValue setClearsOnBeginEditing:NO];// Add this line
}
于 2012-12-04T10:15:16.200 回答
0

你将需要这个textField:shouldChangeCharactersInRange:replacementString:

于 2012-12-04T10:17:06.073 回答