我的页眉文件
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 当用户输入值
时,我需要获取textfiled中输入的值答案 0 :(得分: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
<强>的TextField 强>
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
参数
<强>的TextField 强>
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中声明
答案 1 :(得分:1)
这是因为在用户第一次触摸textField时会调用textFieldDidBeginEditing:
。
要在用户更改文本时获取textField
的文本,请将“编辑已更改”事件连接到文件所有者的IBAction。
答案 2 :(得分:1)
使用此
- (BOOL)textField:(UITextField *)customTipsValue shouldChangeCharactersInRange:(NSRange)range
replacementString:(NSString *)string
{
NSLog(@"textfield value %@",customTipsValue.text);
return YES;
}// return NO to not change text
答案 3 :(得分:0)
您是否注意到方法
- (void)textFieldDidBeginEditing:(UITextField *)customTipsValue
开始编辑textField时调用,而不是在输入字符时调用。
点击此处查看更多信息:
答案 4 :(得分:0)
刚开始编辑模式时,设置清除文本字段为否。
- (void)viewDidLoad
{
customValue.delegate=self;
[customValue setClearsOnBeginEditing:NO];// Add this line
}
答案 5 :(得分:0)