我試圖使用iOS 8 UIAlertController
到位的,我會用過去一個UIAlertView
。我希望用戶能夠將文本輸入到此警報中,並點擊「確定」處理文本或「取消」以取消。帶文本字段的UIAlertController - 點擊返回按鈕只隱藏鍵盤,不執行操作?
這裏的基本代碼:
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"Change Value" message:@"Enter your new value."];
[alert addTextFieldWithConfigurationHandler:nil];
[alert addAction: [UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
UITextField *textField = alert.textFields[0];
NSLog(@"text was %@", textField.text);
}]];
[alert addAction:[UIAlertAction actionWithTitle:@"Cancel" style:UIAlertActionStyleCancel handler:^(UIAlertAction *action) {
NSLog(@"Cancel pressed");
}]];
[presentingVC presentViewController:alert animated:YES completion:nil];
在舊UIAlertView
,我會的UIAlertViewStylePlainTextInput
的alertViewStyle
標記它。然後,如果用戶打輸入文本後,他們的鍵盤上的「返回」按鈕,UIAlertViewDelegate方法willDismissWithButtonIndex:
將與一些buttonIndex
(具體取決於UIAlertView
已經指定哪些按鈕)調用。
在新UIAlertController
,如果用戶點擊「確定」或「取消」按鈕,然後按預期的方式執行其相應的操作;但是如果用戶剛剛擊中鍵盤上的「返回」鍵,它只是隱藏鍵盤,但警報仍保留在屏幕上,並且不執行任何操作。
我想過配置的文本字段設置UITextFieldDelegate
到self
,然後可能重寫textFieldDidReturn:
方法,但我也不知道,如果有一種方法來調用UIAlertController
的行動程序之一。無論如何,這聽起來有點亂。我錯過了明顯的東西嗎?
我找不到以編程方式觸發動作的方法。多麼疏忽... – elsurudo 2016-02-05 17:36:17