我有以下几行代码:
textView.textContainer.maximumNumberOfLines = 10;
textView.textContainer.lineBreakMode = NSLineBreakByTruncatingHead;
[textView setText:@"1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n11"];
无论我将lineBreakMode设置为什么,输出总是排除11,但包含1.我需要截断字符串的开头,而不是结束。关于为什么这不起作用的任何想法?
答案 0 :(得分:1)
这不是换行模式的作用。如果个别行比文本视图中的宽,那么该模式应该使它在头部被截断而不是包装到另一行,但它不会导致文本视图改变它显示的行。
要获得你想要的效果,你必须自己修改字符串。如果它的格式与您的测试字符串的方式(使用显式换行符)相对容易 - -rangeOfString:options:range:
将允许您沿着字符串向后搜索,直到找到要保留的第N行的开头 - 但如果您是依赖于自动换行,那么你将不得不使用-boundingRectWithSize:options:attributes:
并在开头砍掉单词,直到它符合你需要的大小。