繁体   English   中英

如何检测 UITextField 何时是第一响应者

[英]how to detect when UITextField is the first Responder

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

尝试改用 UITextField 占位符属性。

例如:

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

而已。 你完成了。 Apple 将为您处理 rest,因此这确实比尝试自己动手做更好的方法。

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

你可以像下面这样使用它

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

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

首先为您的 textField 添加一个更改属性,如下所示:

[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 = ""
    ...
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM