Направление написания NSAttributedString

Я пытаюсь изменить направление записи в NSAttributedString. Однако мне действительно трудно понять, как это сделать.

CTFontRef fontRef = CTFontCreateWithName((CFStringRef)@"ArialRoundedMTBold", 16, NULL);

NSDictionary *attrDictionary = [NSDictionary dictionaryWithObjectsAndKeys:(__bridge id)fontRef,(NSString *)kCTFontAttributeName, nil];
CFRelease(fontRef);

NSAttributedString *attString=[[NSAttributedString alloc] initWithString:self.stringMap attributes:attrDictionary];

self.attString = attString;

Это код, в котором я инициализирую свою NSAttributedString, и я прочитал о константе kCTWritingDirectionRightToLeft, и я чувствую, что должен где-то ее вставить, но я могу понять, где и как.

У кого-нибудь есть предложения?

1 ответ

Я читаю внимательнее док.

Я буду использовать NSFontAttributeName а также NSWritingDirectionAttributeName так как мне удобнее с ними, чем использовать все bridge материал, а также сокращенный синтаксис.

Так NSWritingDirectionAttributeName ждет NSArray из NSNumbers. Это была проблема. Один из этих номеров должен быть NSWritingDirection (LeftToRight или RightToLeft), а другой - NSTextWritingDirection (Embedding или Override).

Итак, возможны комбинации (и я думаю, что вы ищете четвертый):

NSDictionary *attrDictionary = @{NSFontAttributeName:font,
                                 NSWritingDirectionAttributeName:@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride)]};

NSDictionary *attrDictionary = @{NSFontAttributeName:font,
                                 NSWritingDirectionAttributeName:@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionEmbedding)]};

NSDictionary *attrDictionary = @{NSFontAttributeName:font,
                                 NSWritingDirectionAttributeName:@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionOverride)]};

NSDictionary *attrDictionary = @{NSFontAttributeName:font,
                                 NSWritingDirectionAttributeName:@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride)]};

Источник: ДокументацияNSWritingDirectionAttributeName

Другие вопросы по тегам