我已經通過此網站搜索,我無法找到我現在面臨的問題的解決方案。希望有人能幫忙。ResignFirstResponder不關閉鍵盤(iPhone)
我創建了一個UIAlertView來提示用戶在iPhone應用程序中輸入他們的名字。
UIAlertView *enterNameAlert = [[UIAlertView alloc] initWithTitle:@"Enter your name"
message:@"\n\n\n"
delegate:self
cancelButtonTitle:NSLocalizedString(@"Cancel", nil)
otherButtonTitles:NSLocalizedString(@"OK", nil),nil];
UITextField *enterNameField = [[UITextField alloc] initWithFrame:CGRectMake(16, 83, 252, 25)];
enterNameField.keyboardAppearance = UIKeyboardAppearanceAlert;
enterNameField.borderStyle = UITextBorderStyleRoundedRect;
enterNameField.autocorrectionType = UITextAutocorrectionTypeNo;
enterNameField.clearButtonMode = UITextFieldViewModeWhileEditing;
enterNameField.returnKeyType = UIReturnKeyDone;
enterNameField.delegate = self;
[enterNameField becomeFirstResponder];
[enterNameAlert addSubview:enterNameField];
[enterNameAlert show];
[enterNameAlert release];
[enterNameField release];
我設置這個的viewController遵守UITextFieldDelegate在頭文件,並實施textFieldShouldReturn:
試圖解僱鍵盤時,用戶點擊完成。
- (BOOL)textFieldShouldReturn:(UITextField *)textField {
if ([textField isFirstResponder]) {
[textField resignFirstResponder];
NSLog(@"text field was first responder");
} else {
[textField becomeFirstResponder];
[textField resignFirstResponder];
NSLog(@"text field was not first responder");
}
NSLog(@"textfieldshouldreturn");
return YES;
}
在調試程序,我確認成功時,我完成按鈕點擊調用此方法,與文本框是當時的第一響應。然而,鍵盤並沒有消失,但小小的clearButton消失了。很明顯,textField不再是第一個響應者,因爲當我再次單擊完成按鈕時,什麼都不會被調用。我只想用完成按鈕來關閉鍵盤。任何人都可以提供解決方案嗎?萬分感謝。
如果將文本字段設置爲視圖控制器中的屬性,從而確保即使在警報解除後仍保留它,會發生什麼情況?我想知道是否它可能會在事件循環開始發送resignFirstResponder消息之前得到釋放,或者是類似的東西。 P.S.我們曾經一起工作嗎? – clozach 2010-08-30 10:12:16