SimpleLyricsPlayer その17(0.5改行への挑戦)
SimpleLyricsPlayer その13(レイアウト最適化): TBBOY'S ROOMで残された課題について。
テキストの場合、段落の区切りを示すのに空白一行を入れる場合が多い。歌詞の表示を可能な限り小さくするのには、この空白一行の高さを半分につまり0.5改行したい。NSParagraphStyleでは、段落の幅を指定できるのでこれで実現しようと模索。まあ結論から書くと失敗に終わるわけだが。
そもそも、通常のテキストには段落の区切り(paragraph separator)を示す文字は入っていない。だが、NSParagraphStyleでは改行文字(CR)が段落の区切りとして扱われている。では、テキストに行の区切り(line separator)を示す文字を入れればよいわけとなる。とりあえず、その文字コードを調べる必要がある。OSXのText EditにはRTF編集モードでこの2つの文字を挿入する機能がある。Text Editはプロジェクトが公開されているので調べてみるとメニューからFirst Responderに接続している。なんと都合よく、NSResponderにinsertLineBreak:が存在する。リファレンスを読むとその記述がある。
NSLineSeparatorCharacter (0x2028)
NSParagraphSeparatorCharacter (0x2029)
これをNSStringにするには以下の通り。
NSString *lineSeparater = [NSString stringWithFormat:@"%C",NSLineSeparatorCharacter];
これを駆使して行区切りを入れたのだが、これもNSParagraphStyleでは、段落の区切りと認識されてしまった。バグ・・・じゃないのか?
| 固定リンク
「Mac」カテゴリの記事
- SimpleLyricsPlayer その19(フォントパネル)(2009.09.22)
- NSAttributedStringの調査(2009.09.21)
- SimpleLyricsPlayer その18(カーソル設定)(2009.09.18)
- SimpleLyricsPlayer その17(0.5改行への挑戦)(2009.09.11)
- iTunes 9.0初見(2009.09.10)
「SimpleLyricsPlayer」カテゴリの記事
- SimpleLyricsPlayer その19(フォントパネル)(2009.09.22)
- SimpleLyricsPlayer その18(カーソル設定)(2009.09.18)
- SimpleLyricsPlayer その17(0.5改行への挑戦)(2009.09.11)
- SimpleLyricsPlayer その16(NSDistributedNotificationCenterとAppleScript)(2009.09.05)
- SimpleLyricsPlayer その15(ファイル・エイリアスの保存)(2009.09.02)



コメント