UIAlertView最大文本长度

时间:2013-01-24 09:05:03

标签: iphone ios objective-c

我只想在UIAlertView上显示一些文字,但如果文字长度大于允许的尺寸,则会显示"Null"字符串。

我很确定文本不会比屏幕大(大约一半多一点),所以我不想让它实现ScrollView变得复杂。

我按照problem in changing size of uialertview更改AlertView的大小,但它不起作用,另外会产生一些奇怪的视觉效果。

我尝试了第三部分组件https://github.com/inamiy/YIPopupTextView,我甚至无法通过编译。 (已将4个文件导入到项目中。)我不知道为什么。

所以,实际上我只想增加允许在AlertView上显示的文字大小。有什么想法吗?

2 个答案:

答案 0 :(得分:3)

我写了一个很小的测试程序。这是我向Single View Application模板添加的唯一内容:

- (void)viewDidAppear:(BOOL)animated {
    NSMutableString *message = [[NSMutableString alloc] init];
    while (message.length < 100000) {
        [message appendString:@"Hello, world!  "];
    }
    [message appendString:@"This is the end."];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Test" message:message delegate:nil cancelButtonTitle:@"Done" otherButtonTitles:nil];
    [alert show];
}

这适用于运行iOS 5.0的iPhone模拟器和运行iOS 6.0.2的iPhone 5。显示所有文本(在可滚动的文本视图中)。

您的问题可能与文字大小有关。

答案 1 :(得分:0)

我在显示字典中解析的JSON对象的结果时发现了一个奇怪的行为,然后打印在alertView上(在Xcode 5.1.1上,在iphone 64位模拟器上编译iOS 7.1)。对于相同的inputData:

[[UIAlertView alloc]initWithTitle:@"something" message:[[[NSString stringWithFormat:@"json:%@",[inputData dictionaryRepresentation]] stringByReplacingOccurrencesOfString:@" "withString:@""]substringToIndex:7035] delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];

正确打印,但如果我说“substringToIndex:7036”它只显示空格...没有“stringByReplacingOccurrencesOfString:”方法,限制远远超出:

[[UIAlertView alloc]initWithTitle:@"something" message:[[NSString stringWithFormat:@"json:%@",[inputData dictionaryRepresentation]] substringToIndex:13768] delegate:self cancelButtonTitle:@"ok" otherButtonTitles: nil];

正确打印,而不是“substringToIndex:13769”不打印......我意识到这不是最大长度的问题,而是JSON对象中的特殊字符