有一些意想不到的东西我无法解决。我有Fruit
alertController
。我尝试获取其中一个的字符串值。当字符串长度小于11个字符时,一切正常。超过此阈值,字符串为textfields
。
有人能给我一些关于发生了什么的暗示吗?
以防万一,我把我的代码放在下面:
null
谢谢!
答案 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
包含更多文本字段。因此,您可以使用标记来识别文本字段。