我一直抨擊我的頭靠在牆上一段時間了,現在仍然沒有設法解決這個問題。UITextField不辭職鍵盤
我有一個modalViewController上有一個UITextField(我們稱之爲myTroubleMaker)和其他一些非重要的組件。當我加載modalVC時,我初始化UITextField,並讓它立刻成爲第一個響應者,同時我將它的代理設置爲modalVC(self)。 modalView加載很好,重點放在UITextField和鍵盤上。 但是當我觸摸/點擊屏幕上的任何其他位置時,它並不會關閉鍵盤。它確實將焦點從UITextField中切換出來並放棄firstResponder,但鍵盤並未解散。
什麼是造成這個麻煩的問題?我該如何解決這個問題?
代碼:
.H
@interface myModalViewController : UIViewController <UItextFieldDelegate>
{
UITextField *myTroubleMaker;
}
@property (nonatomic, retain) UITextField *myTroubleMaker;
@end
.M
//I synthesized it properly
-(void)loadView
{
[super loadView];
self.myTroubleMaker = [[UITextField alloc] initWithFrame:CGRectMake(0, 0, 300, 50)];
self.myTroubleMaker.backgroundColor = [UIColor clearColor];
self.myTroubleMaker.textColor = [UIColor whiteColor];
self.myTroubleMaker.text = @"";
self.myTroubleMaker.font = [UIFont systemFontOfSize:self.myTroubleMaker.frame.size.height - 8];
self.myTroubleMaker.adjustsFontSizeToFitWidth = YES;
self.myTroubleMaker.minimumFontSize = 0.0;
self.myTroubleMaker.textAlignment = UITextAlignmentCenter;
self.myTroubleMaker.autocorrectionType = UITextAutocorrectionTypeNo;
self.myTroubleMaker.delegate = self;
self.myTroubleMaker.placeholder = @"I eat ur brainz, yoh!";
self.myTroubleMaker.keyboardType = UIKeyboardTypeDefault;
self.myTroubleMaker.returnKeyType = UIReturnKeyDone;
[self.view addSubview:self.tabNameInputField];
[self.myTroubleMaker becomeFirstResponder];
}
- (BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
self.tabNameInputField.text = @"";
return YES;
}
- (void)textFieldDidEndEditing:(UITextField *)textField
{
[textField resignFirstResponder];
}
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
[textField resignFirstResponder];
return YES;
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event;
{
UITouch *touch = [[event allTouches] anyObject];
if ([touch view] == someOtherModalVCComponent) {
//do stuff
if([self.tabNameInputField isFirstResponder])
{
[self.tabNameInputField resignFirstResponder];
}
[self loadGraphics];
}
if ([touch view] != self.myTroubleMaker)
{
if([self.myTroubleMaker isFirstResponder])
{
[self.myTroubleMaker resignFirstResponder];
}
}
}
它的所有工作,我想,除了用鍵盤此mindnumbing問題的方式。 即使我寫這個問題,我檢查了可能的解決方案類似的問題。
任何幫助,將不勝感激。我在這裏頭痛......
由我在下面接受的解決方案解決。
對於將來的參考,我使用devforums.apple.com/message/425914來獲得我的具體解決方案。由於我使用navigationController傳遞了modalVC,因此我需要在UINavigationController上創建一個類別並將其添加到它,以便它支持自動解除鍵盤。
這正是發生在我身上的事情。好工作! 對於將來的參考,我使用https://devforums.apple.com/message/425914來獲得我的具體解決方案。由於我使用navigationController傳遞了modalVC,因此我需要在UINavigationController上創建一個類別並將其添加到它,以便它支持自動解除鍵盤。 再次感謝。 –