如何检测用户何时选择文本字段?我想删除UItextField.Text当用户选择UItextField时。例如,我有userName字段,默认文本“输入您的用户名”。我希望在UITextField成为第一个响应者时删除文本。
答案 0 :(得分:8)
请尝试使用UITextField占位符属性。
例如:
UITextField *userName= [[UITextField alloc]
initWithFrame:CGRectMake(110, 10, 185, 30)];
userName.placeholder = @"enter your user name";
就是这样。你完成了。 Apple将为您处理剩下的事情,所以它真的比尝试自己做的更好。
答案 1 :(得分:2)
根据UITextField
@Richard Brightwell.
的占位符属性
您可以按以下方式使用
myTextField = [[UITextField alloc] initWithFrame:CGRectMake(x,y,width,height)];
.............................................................................
.............................................................................
myTextField.placeholder = @"Enter your user name " ;
.............................................................................
有关更多信息,请查看Apple文档中的UITextField。
答案 2 :(得分:1)
首先在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];
}
}
这是您可以在目的中更改它的示例代码。
答案 3 :(得分:0)
这是一个旧线程,但我想添加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 = ""
...
}