Hi all,

I want some fonts in my views to be customizable. Notably, for a table view. I added a font in the user defaults and this part works fine. I did some test on a label and it doesn't work.

I want to change the label's font and display the font name. Here's what I've done:

I placed 3 buttons (show font, save font and test font) and a label in a view and bound the Font (in IB) like this:

Controller key: "values", Model Key Path: "userFonts.smallFontForList", Value Transformer: "NSKeyedUnarchiveFromData"

Here's the code:


- (IBAction)showFontPanel:(id)sender
{
        NSFontPanel *fontPanel = [NSFontPanel sharedFontPanel];
        [fontPanel orderFront:sender];
}

-(IBAction)saveFont:(id)sender
{
        //get the saved font
        NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *fontDict = [NSMutableDictionary dictionaryWithDictionary:[userDefault objectForKey:@"userFonts"]];
        NSData *oldFontAsData = [fontDict objectForKey:@"smallFontForList"];
NSFont *oldFont = [NSKeyedUnarchiver unarchiveObjectWithData:oldFontAsData];
        
        //change it
        NSFontPanel *fontPanel = [NSFontPanel sharedFontPanel];
        NSFont *newFont = [fontPanel panelConvertFont:oldFont];
        
        //save it
NSData *newFontAsData = [NSKeyedArchiver archivedDataWithRootObject:newFont];
        
        [fontDict setObject:newFontAsData forKey:@"smallFontForList"];
        [userDefault setObject:fontDict forKey:@"userFonts"];

}


- (IBAction)testFont:(id)sender
{
        NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];
NSMutableDictionary *fontDict = [userDefault objectForKey:@"userFonts"];

        NSData *data = [fontDict objectForKey:@"smallFontForList"];
        NSFont *tf = [NSKeyedUnarchiver unarchiveObjectWithData:data];
        [test setStringValue:[tf fontName]];
}

The label changes its value but not its font. Must be some silly thing I overlook...

Any hints?

Thanks,

Andre Masse



_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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]

Reply via email to