나는 암호 위에 사용자 이름을 입력 한 다음 로그인 단추를 마지막에 맨 아래에 둔 로그인 페이지를 가지고 있습니다. 사용자 이름을 입력하면 키보드가 패스와 로그인 정보를 포함합니다. 누군가가 텍스트 필드 외부를 클릭하거나 키보드 닫기 버튼을 생성하는 방법이있을 때 키보드를 닫으려면 어떻게해야합니까? 내가 그것을하는 방법을 찾은 유일한 방법은 프로그래밍 방식으로 필드를 UI에 추가하는 것입니다. 편집기를 사용하여이를 수행 할 수있는 방법이 있습니까? 나는 그것이 같은 것을했다 할 것으로아이폰 시뮬레이터에서 키보드 닫기
@interface Login : UIViewController{
RootViewController *rootViewController;
IBOutlet UITextField *usernameField;
IBOutlet UITextField *passwordField;
IBOutlet UIButton *loginButton;
}
@property (nonatomic, retain) UITextField *usernameField;
@property (nonatomic, retain) UITextField *passwordField;
@property (nonatomic, retain) UIButton *loginButton;
@property (nonatomic, retain) RootViewController *rootViewController;
- (IBAction) login: (id) sender;
@end
유일한 방법 : 여기
내 헤더 파일입니다- (BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
- (void)loadView
{
self.view = contentView;
[contentView release];
// Create a field with a Done return key
usernameField = [[[UITextField alloc] initWithFrame:CGRectMake(120.0f, 40.0f, 150.0f, 30.0f)] retain];
[usernameField setBorderStyle:UITextBorderStyleRoundedRect];
usernameField.placeholder = @"name";
usernameField.returnKeyType = UIReturnKeyDone;
usernameField.clearButtonMode = UITextFieldViewModeWhileEditing;
usernameField.delegate = self;
[contentView addSubview:usernameField];
[usernameField release];
}
프로그램 뷰와이 문제를이 방법을 fields.Is 추가 ?
보기에서 제스처 인식기의 문제점은 하위보기에도 적용된다는 것입니다. 즉, 필드를 두드리면 제스처 인식기가 호출되고 키보드가 나타나지 않습니다. 그러나, 어떤 종류의보기가 두드려 졌는지 결정하기 위해 히트 테스트를 수행하고 그에 따라 진행할 수 있습니다. –
일부 오래된 코드를 보면 UITapGestureRecognizer를 사용했습니다. cancelsTouchesInView = NO 속성을 설정했습니다. 내 탭 핸들러는 기본적으로 키보드의 공간을 채우기 위해 뷰의 크기를 조정합니다. – bbarnhart
오, 제 생각에 당신은 UITapGestureRecognizer를 사용하여 첫 번째 응답자를 사퇴하는 것에 대해 이야기하고 있다고 생각했습니다. –