2016-03-07 83 views
-2
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:APP_NAME 
               message:@"Please enter amount" 
               delegate:self 
             cancelButtonTitle:@"Done" 
             otherButtonTitles:nil]; 
alert.alertViewStyle = UIAlertViewStylePlainTextInput; 
alert.tag = 2; 
[alert show]; 

以上是我在UIAlertView中的编码和类型数量。当键盘显示时,我的客户想要“完成”按钮而不是“返回”。请帮我怎么做?如何更改返回按钮以在UIAlertViewStylePlainTextInput中完成Xcode

+3

您是否知道,因为iOS的8 UIAlertView中已弃用? –

+0

“完成”按钮而不是“返回” - 你可以更多地解释一下 –

+0

@ Anbu.Karthik当你把光标放在UIAlertView的UITextField中,然后键盘会显示回车按钮。 – ppshein

回答

2

试试这个

UIAlertView中

Objective-C的

UIAlertView *alert = [[UIAlertView alloc] initWithTitle: APP_NAME message:@"Please enter amount" delegate:self cancelButtonTitle:@"Done" otherButtonTitles: nil]; 
alert.alertViewStyle = UIAlertViewStylePlainTextInput; 
UITextField *textField = [alert textFieldAtIndex:0]; 
textField.keyboardType = UIKeyboardTypeNumberPad; 
// set return key type of current textfield 
textField.returnKeyType = UIReturnKeyDone; 
[alert show]; 

斯威夫特

var alert: UIAlertView = UIAlertView(title: APP_NAME, message: "Please enter amount", delegate: self, cancelButtonTitle: "Done", otherButtonTitles: "") 
alert.alertViewStyle = .PlainTextInput 
var textField: UITextField = alert.textFieldAtIndex(0) 
textField.keyboardType = .NumberPad 
textField.returnKeyType = UIReturnKeyDone 
alert.show() 

作为

typedef NS_ENUM(NSInteger, UIReturnKeyType) { 
UIReturnKeyDefault, 
UIReturnKeyGo, 
UIReturnKeyGoogle, 
UIReturnKeyJoin, 
UIReturnKeyNext, 
UIReturnKeyRoute, 
UIReturnKeySearch, 
UIReturnKeySend, 
UIReturnKeyYahoo, 
UIReturnKeyDone, 
UIReturnKeyEmergencyCall, 
UIReturnKeyContinue NS_ENUM_AVAILABLE_IOS(9_0), 
}; 

注意其他类型的枚举 - UIAlertView中一直以来的iOS 8在这个地方使用UIAlertcontroller

UIAlertController

斯威夫特

var loginTextField: UITextField? 
let alertController = UIAlertController(title:APP_NAME, message: "Please enter amount", preferredStyle: .Alert) 
let ok = UIAlertAction(title: "Done", style: .Default, handler: { (action) -> Void in 
      print("Ok Button Pressed") 
     }) 

alertController.addAction(ok) 
alertController.addTextFieldWithConfigurationHandler { (textField) -> Void in 
    // Enter the textfiled customization code here. 
    loginTextField = textField 
    //loginTextField?.placeholder = "xxx" 
    loginTextField?.keyboardType = UIKeyboardType.NumberPad 
    loginTextField?.returnKeyType = UIReturnKey.Done 
     } 
presentViewController(alertController, animated: true, completion: nil) 
弃用

Objective-C的

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:APP_NAME 
                    message:@"Please enter amount" 
                   preferredStyle:UIAlertControllerStyleAlert]; 
UIAlertAction *Done = [UIAlertAction actionWithTitle:@"Done" 
                 style:UIAlertActionStyleDefault 
                handler:^(UIAlertAction *action) { 
                  // handler code 
                }]; 

[alertController addAction:Done]; 

[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) { 
    //handler code 
    textField.keyboardType = UIKeyboardTypeNumberPad; 
// set return key type of current textfield 
    textField.returnKeyType = UIReturnKeyDone; 
}]; 


[self presentViewController:alertController animated:YES completion:nil]; 
1

enter image description here

试试这个,在属性检查器,更改Return键,可以 “完成”

+0

,问题与UIAlertview textfied returntype有关,不是一个常见的UItextfield返回类型,你可以更新你的答案。 –

+0

@ Anbu.Karthik,你的解决方案是正确的。谢谢。 – Rachel

+0

我们无法直接在属性检查器上更改返回类型的原因,UIalertview不带有层次结构 –