You could try using -[NSMutableAttributedString setAlignment:range:]
On Mar 8, 2010, at 12:27 PM, Neil Clayton wrote:
>
> Hello All!
>
> I seem unable to align text when drawing using drawAt:point. The NSTextView
> shows it OK (so the attributes appear correct), but drawing of the text
> doesn't show alignment...
>
> My code is:
>
> - (void) awakeFromNib {
> NSNotificationCenter *nc = [NSNotificationCenter defaultCenter];
> [nc addObserver:self selector:@selector(updateText:)
> name:NSTextViewDidChangeTypingAttributesNotification object:nil];
> [nc addObserver:self selector:@selector(updateText:)
> name:NSTextDidChangeNotification object:nil];
>
> NSString *str = @"This is a test\nAnd this text should be right
> aligned\nBut for some reason, in the image, isn't";
> NSMutableParagraphStyle *pStyle = [[NSMutableParagraphStyle new]
> autorelease];
> [pStyle setAlignment:NSRightTextAlignment];
> NSDictionary *attrs = [NSDictionary
> dictionaryWithObjectsAndKeys:pStyle, NSParagraphStyleAttributeName, nil];
> NSAttributedString *as = [[[NSAttributedString alloc]
> initWithString:str attributes:attrs] autorelease];
> [[text textStorage] setAttributedString:as];
> }
>
> - (void) updateText:(NSNotification*)aNotification {
> [self textChanged:self];
> }
>
> - (IBAction) textChanged:(id)sender {
> NSAttributedString *string = [text attributedString];
> NSSize bounds = [string size];
>
> if(bounds.width > 0 && bounds.height > 0) {
> NSImage *image = [[[NSImage alloc] initWithSize:bounds]
> autorelease];
> [image lockFocus];
> @try {
> [string drawAtPoint:NSZeroPoint];
> } @finally {
> [image unlockFocus];
> }
>
> [view setImage:image];
> } else {
> [view setImage:nil];
> }
> }
>
> A sample of what I see when I run this is here:
> http://dl.dropbox.com/u/421935/DrawingText/DrawingTest.png
>
> I must be missing something really obvious. Any ideas?
>
> Neil Clayton
> [email protected]
>
>
>
>
> _______________________________________________
>
> Cocoa-dev mailing list ([email protected])
>
> Please do not post admin requests or moderator comments to the list.
> Contact the moderators at cocoa-dev-admins(at)lists.apple.com
>
> Help/Unsubscribe/Update your Subscription:
> http://lists.apple.com/mailman/options/cocoa-dev/kainjow%40kainjow.com
>
> This email sent to [email protected]
_______________________________________________
Cocoa-dev mailing list ([email protected])
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com
This email sent to [email protected]