views:

1030

answers:

2

I've figured out how to use the NSBezierPath class to draw shapes in the drawRect function of my custom view class, however I can't seem to figure out how to draw text. The following code is what I have so far for drawing the text (located in the drawRect function):

NSText *text = [NSText new];
[text setTextColor: [NSColor yellowColor]];
[text setText: @"Hello!"];

I'm guessing that I may need to supply an NSRect or NSPoint to tell the NSText object where to draw itself, but I can't find anything in the Cocoa documentation about how to do this.

+2  A: 

You could try something along these lines:

//note we are using the convenience method, so we don't need to autorelease the object
NSDictionary *attributes = [NSDictionary dictionaryWithObjectsAndKeys:[NSFont fontWithName:@"Helvetica" size:26], NSFontAttributeName,[NSColor blackColor], NSForegroundColorAttributeName, nil];

NSAttributedString * currentText=[[NSAttributedString alloc] initWithString:@"Cat" attributes: attributes];

NSSize attrSize = [currentText size];
[currentText drawAtPoint:NSMakePoint(yourX, yourY)];
Ben Clark-Robinson
Perfect! Thanks so much for your help.
Jason Roberts
+2  A: 

NSText is a view (specifically, the superclass of NSTextView).

There are several ways to draw text, with and without attributes (fonts, colors, paragraph styles, etc.). See AppKit's additions to NSString and to NSAttributedString.

Peter Hosey