1

次のように、文字列に新しい行を追加しています。

unichar newLineChar = NSNewLineCharacter;
NSString *newLineCharAsStr = [NSString stringWithCharacters:&newLineChar length:1];
NSString * newLine = [[NSString alloc] initWithString: newLineCharAsStr];
[finalString appendString: newLine];

しかし、Core Text でレンダリングすると、2 つの改行が表示されます。つまり、テキストの 2 つのチャンクの間に空行があります。ある行を終了し、新しい行で次の行を開始したいだけです(つまり、間に空の行はありません)。

appendString を削除すると、テキストが連続して流れる (つまり、改行が追加されない) ため、誤って改行を 2 回追加していないことが確認できます。、NSCarriageReturnCharacterNSLineSeparatorCharacterおよびNSParagraphSeparatorCharacterも試しましたが、これはすべての場合に発生します。\r\n

私はおそらく間違った場所を探しているように感じますが、誰か助けてもらえますか?

更新: 以下に提供されているリンクの 1 つから、Core Text の '\n' が段落を終了し、現在の行の下に改行を挿入することを収集します。これにより、改行が常に挿入される理由が説明されます。洗練された質問だと思いますが、Core Text では、段落区切りを挿入するのではなく、単純に行を分割するのは何ですか? つまり、望ましい結果は

1
行目。2行目。

それよりも:

1

行目。2行目。

これは私が現在得ているものです。

4

2 に答える 2

0

これは確かに、改行文字を使用せずにコアテキストの段落を定義するためのバリアント回答ですか? トロイの木馬が示唆したように。Core Text に改行文字を段落の区切りとしてではなく、改行文字として扱うように強制する方法はまったくありません。

したがって、'\n' が改行のみになるように段落間隔を縮小する唯一の方法は、Core Text 段落属性の 'kCTParagraphStyleSpecifierParagraphSpacing' と 'kCTParagraphStyleSpecifierParagraphSpacingBefore' を 0.0 に設定することです。 .

于 2013-01-15T15:38:17.257 に答える
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);
于 2013-01-15T13:37:07.220 に答える