UIAlertController:textfield不返回字符串

时间:2017-01-06 21:31:49

标签: objective-c string uitextfield uialertcontroller

有一些意想不到的东西我无法解决。我有Fruit alertController。我尝试获取其中一个的字符串值。当字符串长度小于11个字符时,一切正常。超过此阈值,字符串为textfields

有人能给我一些关于发生了什么的暗示吗?

以防万一,我把我的代码放在下面:

null

谢谢!

2 个答案:

答案 0 :(得分:0)

您确定^(UITextField *textField)nameTextfield是否相等,请确保获得当前的文本字段。

[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
    **NSLog(@"%s", textField);**
    textField.placeholder = @"Name";
    textField.textColor = [UIColor blueColor];
    textField.clearButtonMode = UITextFieldViewModeWhileEditing;
    textField.borderStyle = UITextBorderStyleRoundedRect;
}];

[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    NSArray *textfields = alertController.textFields;
    UITextField *nameTextfield = textfields[0];
    **NSLog(@"%s", nameTextfield);**
    self.textFieldString = nameTextfield.text;

    NSLog(@"self.textFieldString is: %@", self.textFieldString); // -> this returns a null value when the string length is > 11


}]];

我改变了你的代码,运行它,确保地址相同。

答案 1 :(得分:0)

UIAlertController *alertController = [UIAlertController alertControllerWithTitle:@"title" message:@"message" preferredStyle:UIAlertControllerStyleAlert];

[alertController addTextFieldWithConfigurationHandler:^(UITextField *textField) {
    textField.placeholder = @"Name";
    textField.textColor = [UIColor blueColor];
    textField.clearButtonMode = UITextFieldViewModeWhileEditing;
    textField.borderStyle = UITextBorderStyleRoundedRect;
}];

[alertController addAction:[UIAlertAction actionWithTitle:@"OK" style:UIAlertActionStyleDefault handler:^(UIAlertAction *action) {
    NSArray *textfields = alertController.textFields;
    UITextField *nameTextfield = textfields[0];
    //        self.textFieldString = ;

    NSLog(@"self.textFieldString is: %@", nameTextfield.text); // -> this returns a null value when the string length is > 11


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

注意: - 如果您添加更多文本字段,则NSArray *textfields包含更多文本字段。因此,您可以使用标记来识别文本字段。