键盘不隐藏时点击第二个文本字段
我有两个文本字段。点击后,第一个显示一个QWERTY键盘,第二个显示选择器。 我的问题是当我点击我的第一个textField时,键盘正常显示。现在,在我输入任何东西之后,我直接想要点击第二个textField,这是显示选择器,键盘应该消失,但键盘仍然存在。 我想单击第二个textField时立即隐藏键盘。键盘不隐藏时点击第二个文本字段
有两种方式来实现这一点 -
第一:使用UITextFieldDelegate。 对于觉得─ 列出UITextFieldDelegate在您的视图控制器的协议列表一样,
@interface ViewController : UIViewController <UITextFieldDelegate>
然后让你的ViewController符合文本字段的委托,以实现像textFieldDidBeginEditing
的方法,并textFieldDidEndEditing:
所以,去到viewDidLoad
方法和符合的UITextField的协议喜欢 -
- (void)viewDidLoad
{
[super viewDidLoad];
self.firstTextField.delegate = self; //assuming your first textfield's
//name is firstTextField
//Also give your first textfield a tag to identify later
self.firstTextField.tag = 1;
}
现在,你都设置为实现委托方法。但是,要首先实现目标,需要使用UITextField实例来了解何时输入firstTextField。因此,声明UITextField
类型的属性。这样做,在接口文件喜欢 -
@property(nonatomic, strong) UITextField *currentTextField;
现在在textFieldDidBeginEditing
委托方法中,firstTextField实例分配到currentTextField当您开始键入它喜欢 -
- (void)textFieldDidBeginEditing:(UITextField *)textField{
if(textField.tag == 1){
self.currentTextField = textField;
}
}
后,在textFieldDidEndEditing
方法,检查它是否是当前的文本框要从中走出来,并取消键盘喜欢 -
-(void)textFieldDidEndEditing:(UITextField *)textField{
if(textField.tag == 1){
[self.currentTextField resignFirstResponder];
}
return YES;
}
秒:您可以使用UIResponder。作为ViewControllers从UIResponder继承,你只需重写方法 - touchesBegan:withEvent
方法,一些喜欢 -
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{
[self.view endEditing:YES];// this will do the trick
}
在这种情况下,当你点击了侧的文本字段,键盘会自动消失。
使用UITextFieldDelegate
组代表在ViewDidLoad
self
,然后把这个代码
func textFieldDidEndEditing(textField: UITextField)
{
yourtextfieldname.resignFirstResponder()
return true
}
我正在这样做,但它不工作 –
Step 1 :- Code for ViewController.h :-
//add UITextFieldDelegate just after UIViewController
@interface ViewController : UIViewController<UITextFieldDelegate>
Step 2 :- Code For ViewController.m :-
//inside viewdidLoad write following code, where txtInput is outlet for input text field
_txtInput.delegate = self;
// Last Thing write following code just above @end
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
//that's it use this very simple way
第一点击后第二文本字段被做self.view.endEditing则目前选择器 –
我没有...但不工作 –
..删除textfild&使用按钮为什么使用textfield –