如何解决如何检测UITextField何时是第一响应者
| 如何检测用户何时选择文本字段?当用户选择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 = \"\"
...
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。