0

我正在创建一个多行 UIAlertView,但是由于某种原因,UIAlertView 的宽度对于我的一个 NSString 来说太小了,所以它会插入一个换行符并将错误上升到两行......

这就是我的代码的样子

e

lse if ((checkCustomerName == NO)||(checkCustomerEmail == NO)||(checkCustomerRating == NO)||(checkBranchID == NO)||(checkServerAddress == NO)||(checkPortNumber == NO)||(nameTextField == NO)||(emailTextField == NO)) {

        NSMutableString *alertString = [[NSMutableString alloc] init];


        if (checkCustomerName == NO) {
            [alertString appendString: @"invalid name \n"];
        }
        if (checkCustomerEmail == NO) {
            [alertString appendString: @"invalid e-mail \n"];
        }
        if (checkCustomerRating == NO) {
            [alertString appendString: @"Select a slimey to define your experiance \n"];
        }
        if (checkBranchID == NO) {
            [alertString appendString: @"invalid BranchID \n"];
        }
        if (checkServerAddress == NO) {
            [alertString appendString: @"invalid Server address \n"];
        }
        if (checkPortNumber == NO) {
            [alertString appendString: @"invalid port address \n"];
        }
        if (nameTextField == NO) {
            [alertString appendString: @"invalid name, too many characters \n"];
        }
        if (emailTextField == NO) {
            [alertString appendString: @"invalid e-mail, too many characters \n"];
        }



        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Errors" message:alertString delegate:self cancelButtonTitle:nil
                                               otherButtonTitles:@"OK", nil];

        [alert show];


    }

这是文本的显示方式

错误

无效的名称无效的电子邮件选择一个笑脸来定义您的体验//这是它出错的地方......它应该在同一行

所以我想知道的是如何使该文本出现在同一行,例如如何使uialerview更宽

4

1 回答 1

0

我认为您可能希望通过更改问题本身的范围并查看结果来解决此问题。如果有人设法搞砸了所有 8 个字段,您将看到一个包含所有 8 个字符串连接的警报框。将所有这些字符串放在一个盒子里似乎是一个非常讨厌的 UI。为什么不重构你的代码,这样如果用户设法搞砸了其中一个测试,它会用第一个失败原因提醒他们,然后返回。一次针对 1 个问题的 1 条消息。还使用换行符处理您的连接问题。

我不确定为什么换行符在这种情况下不起作用,但您可能会考虑尝试stringByAppendingString:使用stringWithFormat:.

或者它可能是 UIAlertView 在幕后做的事情......

于 2013-03-06T02:10:31.683 回答