我知道如何使用Interface Builder的以下方法。
-(void)dismissKeyboard
{
[testTextField resignFirstResponder];
}
这样,当我触摸键盘外的区域或点击“返回”时,键盘将会解除。
但我不知道如何通过代码完成所有工作。请教我,谢谢。
这是.h
#import <UIKit/UIKit.h>
@interface SecondViewController : UIViewController
{
UITextField *testTextField;
}
@property (nonatomic,retain) UITextField *testTextField;
@end
这是.m
#import "SecondViewController.h"
@implementation SecondViewController
@synthesize testTextField;
- (void)viewDidLoad
{
[super viewDidLoad];
UITextField *tempTextField = [[UITextField alloc] init];
self.testTextField = tempTextField;
testTextField.frame = CGRectMake(100, 150, 200, 30);
testTextField.placeholder = @"Test";
testTextField.backgroundColor = [UIColor whiteColor];
testTextField.textColor = [UIColor blackColor];
[self.view addSubview:testTextField];
}
答案 0 :(得分:3)
你缺少的是UITextFieldDelegate
,它带来了许多文本字段方法,这些方法将因不同的原因而被调用。
您应该在
中重新设置键盘- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
[textField resignFirstResponder];
}
答案 1 :(得分:3)
在viewdidload中使用此代码
UITapGestureRecognizer *gestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(hideKeyboard)];
[self.view addGestureRecognizer:gestureRecognizer];
}
- (void) hideKeyboard
{
[textfieldname1 resignFirstResponder];
[textfieldname2 resignFirstResponder];
}
答案 2 :(得分:0)
将UITextFieldDelegate
添加到标头中并实现此委托方法:
textFieldShouldEndEditing:
在方法中辞退您的第一响应者。