Writing NSAttributedString Directions

I am trying to change the writing direction in NSAttributedString. However, it is very difficult for me to figure out how to do this.

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;

This is the code in which I initialize my NSAttributedString, and I read about the kCTWritingDirectionRightToLeft constant , and I feel like I need to put it somewhere, but I can figure out where and how.

Anyone have any suggestions?

+4
source share
1 answer

I carefully read the document.

I will use NSFontAttributeNameand NSWritingDirectionAttributeName, since I'm more comfortable with it than using all tags bridge, as well as shorthand syntax.

NSWritingDirectionAttributeName a NSArray NSNumbers. . NSWritingDirection (LeftToRight RightToLeft), - NSTextWritingDirection ( ).

, ( , ):

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

+5

Source: https://habr.com/ru/post/1537116/


All Articles