Re: NSFontManager Initialization
Re: NSFontManager Initialization
- Subject: Re: NSFontManager Initialization
- From: Aki Inoue <email@hidden>
- Date: Mon, 3 Mar 2008 14:01:54 -0800
The standard idiom here is to implement -changeFont: method that
receives action messages whenever user changes font selection.
In the method, you can call -convertFont: to query the user selection.
The result has to be kept in your object.
http://developer.apple.com/documentation/Cocoa/Conceptual/FontPanel/Tasks/UsingFontPanel.html#/
/apple_ref/doc/uid/20000836
Aki
On 2008/03/03, at 13:12, Gordon Apple wrote:
I guess I don't understand how to use that. I have no font
specified.
ConvertFont returns a similar font style (e.g., Italic) and size to
whatever
you put into it. What I want is to extract the user selected font
and size
from the panel. "selectedFont" does what I want, as long as it has
been
used previously with text. Here is what I am doing:
-(void)addString:(NSString*)string toPath:(NSBezierPath*)path {
NSFontManager* fmgr = [NSFontManager sharedFontManager];
// NSFont* theFont = [fmgr selectedFont];
NSFont* theFont = [fmgr convertFont:[NSFont systemFontOfSize:50]];
NSBezierPath* stringPath = [string bezierWithFont:theFont];
NSAffineTransform* tf = [NSAffineTransform transform];
[tf scaleXBy:1 yBy:-1];
NSBezierPath* uppath = [tf transformBezierPath:stringPath];
[path appendBezierPath:uppath];
}
BTW, the [string bezierWithFont:theFont] is straight out of the
"SpeedyCategories" file in the SpeedometerView sample code. Works
great.
I wish I had found this long ago.
Gordon,
-[NSFontManager selectedFont] is used mainly for getting the font set
via -[NSFontManager setSelectedFont:isMultiple:] method.
Typically, you query the user font selection via -convertFont:
method.
See the following tech doc section.
Font Panel: Using the Font Panel
Aki
On 2008/03/02, at 14:29, Gordon Apple wrote:
I am using NSFontManager and NSFontPanel to (eventually) extract
a glyph
as a draw object. The following code fails unless the font panel
has
previously been used in a text field.
NSFontManager* fmgr = [NSFontManager sharedFontManager];
NSFont* theFont = [fmgr selectedFont];
After I select the font and size in the panel, "theFont" will
always
return nil. If I first use the panel with a text view, it will work
properly. Also, a few times, I couldn't set the size in the panel's
size
field. Bug report time? Or is there something else I could do to
get it
properly initialized?
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden