我是iOS编程的新手,所以我有2个textFields和1个按钮,我希望textfield1中的返回键是下一个键,而textfield2中的键是完成键,当我按下这个键(下一个键)时,光标将在textfield2中,当我按下textfield2中的完成键时,它将执行按钮。我无法处理这些事件,任何人都可以帮助我吗?
答案 0 :(得分:1)
让我们考虑您将文本字段链接到.h,创建2个IBOutlet
,以及按钮的插座和操作:
@property (weak, nonatomic) IBOutlet UITextField *firstField;
@property (weak, nonatomic) IBOutlet UITextField *secondField;
@property (weak, nonatomic) IBOutlet UIButton *button;
- (IBAction)buttonPress:(id)sender;
在.m文件的viewDidLoad
中,添加以下内容:
_firstFieldField.delegate = self;
_secondField.delegate = self;
返回.h文件,使您的班级符合UITextFieldDelegate
协议:
@interface MyViewController : UIViewController <UITextFieldDelegate>
然后,在.m中,您可以实现以下方法,当您按下键盘上的“完成”按钮时将调用该方法:
-(BOOL)textFieldShouldReturn:(UITextField *)textField {
if (textField == _usernameField) {
_firstField becomeFirstResponder];
}
else if (textField == _passwordField) {
[_secondField resignFirstResponder];
[self buttonPress:_button];
}
return NO;
}
答案 1 :(得分:0)
您必须为此实施UITextFieldDelegate
方法,并将文本字段的代理设置为self
(self
作为您的UIViewCiontroller
):
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
if (textField == self.textField1) {
[self.textField2 becomeFirstResponder];
} else {
[self buttonTapped:self.button];
}
return YES;
}
至于您在密钥上看到的内容,您可以将其设置为&#34;返回密钥&#34;在界面构建器
中答案 2 :(得分:0)
带有标签的两个文本字段 - 1 &amp;的 2 强>
一种用于文本字段的IBAction方法。
从您查看的文本字段中绑定方法。 - &GT; 退出结束事件
- (IBAction)returnAction:(id)sender
{
if ([sender tag] == 1) {
[textField2 becomeFirstResponder];
} else {
//YOUR_ACTION to perform;
}
}
您也可以使用Delegate方法执行
-(BOOL)textFieldShouldReturn:(UITextField *)textField;
感谢。
答案 3 :(得分:0)
- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
if (textField == self.textField1) {
[self.textField2 becomeFirstResponder];
} else {
[button sendActionsForControlEvents:UIControlEventTouchUpInside];
}
return YES;
}