如何检测当UITextField是第一个响应者
如何检测用户何时选择文本字段?我想删除UItextField.Text当用户选择了UItextField。例如,我有一个默认文本“输入您的用户名”的用户名字段。我想在UITextField成为第一响应者时删除文本。如何检测当UITextField是第一个响应者
首先添加文本框的改变性质类似:
[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";
就是这样。你完成了。苹果将为您处理剩下的事情,所以它比尝试自己做所有事情更好。
+1这是你的使用情况更好的选择。 – 2011-06-12 10:55:22
@albertamg @Richard tahnk你非常,但我surches在sof,我不明白如何使用palceholder ...你能帮助我吗?我是新的iphone dev – user794317 2011-06-12 11:15:09
我为你添加了示例代码。我认为这是一种比你尝试的更好的方式。试试看,你会看到。 – 2011-06-12 17:13:03
使用的UITextField
占位财产@Richard Brightwell.
的建议,您可以使用它,如下
myTextField = [[UITextField alloc] initWithFrame:CGRectMake(x,y,width,height)];
.............................................................................
.............................................................................
myTextField.placeholder = @"Enter your user name " ;
.............................................................................
详细检查苹果的文档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 = ""
...
}
非常感谢你 – user794317 2011-06-12 11:57:58
不客气。如果你认为答案是正确的,你可以投票,然后其他有相同问题的人可以很快得到答案。 – 2011-06-12 12:22:46
我试过投票但我应该有15个声望... – user794317 2011-06-12 13:41:11