Direction d'écriture NSAtsortingbutedSsortingng

J'essaye de changer la direction d'écriture dans un NSAtsortingbutedSsortingng. Cependant, j'ai vraiment du mal à comprendre comment le faire.

CTFontRef fontRef = CTFontCreateWithName((CFSsortingngRef)@"ArialRoundedMTBold", 16, NULL); NSDictionary *attrDictionary = [NSDictionary dictionaryWithObjectsAndKeys:(__bridge id)fontRef,(NSSsortingng *)kCTFontAtsortingbuteName, nil]; CFRelease(fontRef); NSAtsortingbutedSsortingng *attSsortingng=[[NSAtsortingbutedSsortingng alloc] initWithSsortingng:self.ssortingngMap atsortingbutes:attrDictionary]; self.attSsortingng = attSsortingng; 

C'est le code dans lequel j'initialise mon NSAtsortingbutedSsortingng et j'ai lu sur la constante kCTWritingDirectionRightToLeft et je me sens comme si je devais le mettre quelque part mais je peux comprendre où et comment.

Quelqu'un a-t-il des suggestions?

Je lis plus attentivement le doc.

Je vais utiliser NSFontAtsortingbuteName et NSWritingDirectionAtsortingbuteName car je suis plus à l'aise avec eux que d'utiliser tous les trucs de bridge , et aussi la syntaxe raccourcie.

NSWritingDirectionAtsortingbuteName attend donc un NSArray de NSNumbers. C'était le problème. L'un de ces numéros doit être NSWritingDirection ( LeftToRight ou RightToLeft ) et l'autre NSTextWritingDirection ( Embedding ou Override ).

Donc, les combinaisons possibles sont (et je pense que vous cherchez le quasortingème):

 NSDictionary *attrDictionary = @{NSFontAtsortingbuteName:font, NSWritingDirectionAtsortingbuteName:@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride)]}; NSDictionary *attrDictionary = @{NSFontAtsortingbuteName:font, NSWritingDirectionAtsortingbuteName:@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionEmbedding)]}; NSDictionary *attrDictionary = @{NSFontAtsortingbuteName:font, NSWritingDirectionAtsortingbuteName:@[@(NSWritingDirectionLeftToRight | NSTextWritingDirectionOverride)]}; NSDictionary *attrDictionary = @{NSFontAtsortingbuteName:font, NSWritingDirectionAtsortingbuteName:@[@(NSWritingDirectionRightToLeft | NSTextWritingDirectionOverride)]}; 

Source: documentation de NSWritingDirectionAtsortingbuteName