我在字符串中添加了一个新行,如下所示:
unichar newLineChar = NSNewLineCharacter;
NSString *newLineCharAsStr = [NSString stringWithCharacters:&newLineChar length:1];
NSString * newLine = [[NSString alloc] initWithString: newLineCharAsStr];
[finalString appendString: newLine];
但是在Core Text中呈现的结果给了我两个换行符。即两个文本块之间的空行。我只想终止一行并在新行上开始下一行(即没有空行)。
如果我删除了appendString,那么文本会连续流动(即没有添加中断),所以我可以确认我没有意外地添加两次换行符。我还尝试了NSCarriageReturnCharacter
,NSLineSeparatorCharacter
和NSParagraphSeparatorCharacter
以及\r
和\n
,但这种情况在所有情况下都会发生。
我觉得我可能在找错了地方,但是有人可以帮忙吗?
更新:我从下面提供的一个链接中收集了Core Text 中的'\ n'结尾一个段落,在当前行下方插入换行符。这可以解释为什么总是插入换行符。所以我想精确的问题是,Core Text中的内容只会破坏一行而不是插入段落?即期望的结果是
第1行。
第2行。
而不是:
第1行。
第2行。
这是我目前所得到的。
答案 0 :(得分:0)
检查此代码:
在第3行中,我使用的是newLineChar
而不是paraChar
NSMutableString *finalString=[[NSMutableString alloc]initWithString:@"hi all"];
unichar newLineChar = '\n';
NSString *newLineCharAsStr = [NSString stringWithCharacters:&newLineChar length:1];
NSString * newLine = [[NSString alloc] initWithString: newLineCharAsStr];
[finalString appendString: newLine];
[finalString appendString:@"bye now"];
NSLog(@"==>%@",finalString);
答案 1 :(得分:0)
这确实是Define Core Text paragraphs without using newline character?的变体答案,正如trojanfoe建议的那样。没有办法强制Core Text将新的行字符视为一个段落,而不是段落。
因此,缩小段落间距以便'\ n'仅打破行的唯一方法是将Core Text段落属性中的'kCTParagraphStyleSpecifierParagraphSpacing'和'kCTParagraphStyleSpecifierParagraphSpacingBefore'设置为0.0,这就是我所做的 - 所有现在看起来很棒。