MSMutableAttributedStringdisplayContentがあります。コンテンツの属性は文字列全体で異なります。つまり、色とフォントサイズは文字によって異なります。
文字列の最後に新しい文字を追加し、displayContentの最後の文字の属性を取得したいと思います。これらの属性はユーザーの管理下にあるため、事前に何であるかを知ることはできません。
新しい文字(tempAttr)を追加すると:
NSAttributedString * tempAttr = [[NSAttributedString alloc] initWithString:appendage];
[displayContent appendAttributedString:tempAttr];
文字列全体の属性を新しい文字の属性にリセットしているように見えます(必要なものがわからないため、設定していません)。
tempAttrにdisplayContentの最後の文字の属性を取得するにはどうすればよいですか?ありがとう。
アップデート。不器用だが機能的な方法でこれを進歩させた。ディスプレイの最後の文字(displayContent)から属性ディクショナリをコピーしてから、追加する新しい文字にそれらの属性を再適用します。
NSMutableDictionary * lastCharAttrs = [NSMutableDictionary dictionaryWithCapacity:5];
[lastCharAttrs addEntriesFromDictionary: [displayContent attributesAtIndex:0
effectiveRange:NULL]]; // get style of last letter
NSMutableAttributedString * tempAttr = [[NSMutableAttributedString alloc] initWithString:newCharacter
attributes:lastCharAttrs];
[displayContent appendAttributedString:tempAttr]; // Append to content in the display field
NSTextFieldのプロパティを設定するなど、これを行うためのより洗練された方法があることを望んでいました。