Iphone 如何检测UITextField何时为第一响应者

Iphone 如何检测UITextField何时为第一响应者,iphone,objective-c,Iphone,Objective C,如何检测用户何时选择文本字段?我想在用户选择UItextField时删除UItextField.Text。例如,我有一个默认文本“输入你的用户名”的用户名字段。我想在UITextField成为第一响应者时删除文本。尝试改用UITextField占位符属性 例如: UITextField *userName= [[UITextField alloc] initWithFrame:CGRectMake(110, 10, 185, 30)]; userName.pl

如何检测用户何时选择文本字段?我想在用户选择UItextField时删除UItextField.Text。例如,我有一个默认文本“输入你的用户名”的用户名字段。我想在UITextField成为第一响应者时删除文本。

尝试改用UITextField占位符属性

例如:

UITextField *userName= [[UITextField alloc] 
                 initWithFrame:CGRectMake(110, 10, 185, 30)];
userName.placeholder = @"enter your user name";

就这样。你完了。苹果会为你处理其余的事情,所以这确实是一种比自己动手做要好得多的方法。

按照
@Richard Brightwell的建议,使用
UITextField
的占位符属性。

你可以使用它如下

myTextField = [[UITextField alloc] initWithFrame:CGRectMake(x,y,width,height)];
.............................................................................
.............................................................................
myTextField.placeholder = @"Enter your user name " ;
.............................................................................

有关更多信息,请查看Apple文档。

首先为文本字段添加如下更改属性:

[nameText addTarget:self action:@selector(textFieldDidChange:) forControlEvents:UIControlEventEditingChanged];
然后在此处创建textFieldDidChange方法:

- (IBAction)textFieldDidChange:(id)sender
{
NSString* nm = [[NSString alloc] init];
NSString* ys = [[NSString alloc] init];

if(sender == nameText)
{

    nameText.textColor = [UIColor clearColor];
    [nameLabel setText:nm];

}
else
{
    yasText.textColor = [UIColor clearColor];
    [yasLabel setText:ys];
}
}

这是示例代码,您可以根据需要进行更改

这是一个旧线程,但我想添加swift 3.0版本。您可以在viewDidLoad方法中将viewcontroller设置为UITextfield的委托,然后实现委托方法。Swift 3.0

class myViewController: UIViewController {

  //other properties
  @IBOutlet weak var myTextField: UITextField!

  override func viewDidLoad() {
    super.viewDidLoad()
    ...
    myTextField.delegate = self
    ....
  }
...
}

extension myViewController: UITextFieldDelegate {

  func textFieldDidBeginEditing(_ textField: UITextField) {
    textField.text = ""
    ...
  }

@albertamg@Richard tahnk非常感谢你,但我在sof工作,不知道如何使用palceholder。。。你能帮我吗?我是iphone新手,devI为您添加了示例代码。我认为这是一个比你所尝试的更好的方法。试试看,你就会明白。这不是正确的答案。您应该像这里的其他答案一样使用占位符属性。