The problem is that you don't generate the glyphs for the font you use in -appendBezierPathWithGlyphs:count:inFont:
. As you don't set NSFontAttributeName
attribute to the NSTextStorage
the glyphs are generated with default font.
Create your NSTextStorage
with correct font and your problem will be solved :
NSTextStorage *storage = [[[NSTextStorage alloc] initWithString:character
attributes:@{NSFontAttributeName : selectedFont}] autorelease];