UIrextfieldfield Resignfirstrestder не работает?
-
27-09-2019 - |
Вопрос
Я дважды проверил все соединения в файле NiB. Мой код -
// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
self.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"iphone_bg_login.png"]];
self.title = @"Login screen";
loginTxt = [[UITextField alloc] init];
pwdText = [[UITextField alloc] init];
loginFailedTxt = [[UILabel alloc] init];
loginBtn = [[UIButton alloc] init];
navAppDelegate = (NavAppDelegate *)[[UIApplication sharedApplication] delegate];
navAppDelegate.navController.navigationBarHidden = YES;
//NSArray *subVs = (NSArray *) [self.view subviews];
[super viewDidLoad];
}
Я использовал подкласс UIView (UIControl)
и добавил все элементы пользовательского интерфейса к нему в интерфейсе Builder. UIControl's touchDown
Метод подключен к backgroundTap
метод.
-(IBAction) backgroundTap:(id) sender {
[loginTxt resignFirstResponder];
[pwdText resignFirstResponder];
//[[UIApplication sharedApplication] becomeFirstResponder];
//[sender resignFirstResponder];
}
Таким образом, клавиатура не удаляется, как если она должна. Не уверен почему.
Спасибо за помощь! Teja.
Решение
DyingCactus указал на вашу ошибку. Вы заменяете NIB-версию элемента управления с совершенно другим управлением, теряя указатель на один в NIB. Когда вы называете resignFirstResponder
, Вы называете его на своем дублированном объекте, а не тот, который на самом деле на экране. Избавиться от alloc
а также init
Призывы к вещам проводятся в нибе.
Не связан с StackOverflow