• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: NSFontManager Initialization
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


References: 
 >Re: NSFontManager Initialization (From: Gordon Apple <email@hidden>)

  • Prev by Date: Re: Spotlight importer for records
  • Next by Date: Re: displaying image and multiple rows of text in NSTableView row
  • Previous by thread: Re: NSFontManager Initialization
  • Next by thread: Re: NSFontManager Initialization
  • Index(es):
    • Date
    • Thread