问题描述
|
如何检测用户何时选择文本字段?当用户选择UItextField时,我想删除UItextField.Text。例如,我的userName字段带有默认文本\“输入您的用户名\”。我想在UITextField成为第一响应者时删除文本。
解决方法
首先,为您的textField添加一个change属性,如下所示:
[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];
}
}
这是示例代码,您可以根据需要对其进行更改。
, 尝试改用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文档中的UITextField。
, 这是一个旧线程,但我想添加swift 3.0版本。您可以在viewDidLoad方法中将viewcontroller设置为UITextfield的委托,然后实现委托方法。斯威夫特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 = \"\"
...
}