好吧所以我正在尝试让几个UITextField在我的代码中获得“tag”属性,她就是:
- (IBAction)userDoneEditing:(id)sender
{
_userFirstNameEntry = UserFirstName.text;
_userLastNameEntry = UserLastName.text;
_emailEntry = UserEmail.text;
_userEntry = UserUser.text;
_userPasswordEntry = UserPassword.text;
UserFirstName.tag = 1;
UserLastName.tag = 2;
UserEmail.tag = 3;
UserUser.tag = 4;
UserPassword.tag = 5;
if(UserFirstName.tag == 1)
{
NSLog(@"textField *UserFirstName did end editing");
}
else if(UserLastName.tag == 2)
{
NSLog(@"textField *UserLastName did end editing");
}
else if(UserEmail.tag == 3)
{
NSLog(@"textField *UserEmail did end editing");
}
else if(UserUser.tag == 4)
{
NSLog(@"textField *UserUser did end editing");
}
else if(UserPassword.tag == 5)
{
NSLog(@"textField *UserPassword did end editing");
}
[sender resignFirstResponder];
}
我正在使用故事板,我还使用属性检查器在storyboard文件中设置了标签属性,但目前我的if逻辑中的语句甚至没有工作..我只是简单地尝试设置5个UITextFields有标签属性,我做错了什么?
答案 0 :(得分:1)
我看到了一些问题。
如果您在故事板中布置文本字段,并在故事板中设置标记,则没有理由在userDoneEditing:
方法中再次设置标记。
此外,如果要设置标记,通常会在初始化方法(如viewDidLoad
)中执行此操作,而不是在userDoneEditing:
等操作方法中执行此操作。
此外,您的代码显示(UITextField.tag == 2)
。但是UITextField
(类对象)没有tag
属性。只有UITextField
的实例具有tag
属性。在这种情况下,我想你想再说textField.tag
。
此外,您似乎将实例变量连接到文本字段(UserFirstName
,UserLastName
等)。您是否将这些连接到故事板中的文本字段?或者以其他方式初始化它们?如果你没有以某种方式连接它们,那么它们就是零并且试图设置它们的标签什么都不做。
此外,您指的是textField
变量,但这不是您方法的参数或局部变量。您的意思是使用sender
吗?
此外,如果您的实例变量已连接到文本字段,则根本不需要使用标记。将textField
(或可能是sender
)依次与每个实例变量进行比较会更简单:
if (sender == UserFirstName) {
NSLog(@"UserFirstName did end editing");
} else if (sender == UserLastName) {
NSLog(@"UserLastName did end editing");
} else ...
答案 1 :(得分:0)
什么是textField?看起来您需要这样的东西来将发件人分配到文本字段:
- (IBAction)userDoneEditing:(id)sender
{
UITextField *textField = (UITextField *)sender;
//...
}