2015-01-02 2 views
1

Я хочу установить шрифт на панели и изменить выбранный шрифт. Я использую NSColorWell, чтобы открыть и выбрать цвет. Что касается шрифта, что я могу использовать? Как открыть панель шрифтов и выполнить действие, когда панель шрифтов закрыта?Как установить шрифт и цвет на nstextfield в какао?

В настоящее время я использую

'- (IBAction)Open_Font_Button:(id)sender 
{ 
    NSFontManager *fontManager = [NSFontManager sharedFontManager]; 
    [fontManager setDelegate:self]; 
    [fontManager setTarget:self]; 
    [fontManager orderFrontFontPanel:self]; 
} 

- (void)changeFont:(id)sender 
{ 
    font = [sender convertFont:font]; 
    NSLog(@"%@", font); 


} 
' 

но на chnageFont, когда я изменить любой шрифт или его размер он выходит из строя.

+0

Что мешает вам тогда делать это? – t3chb0t

+0

Что вы уже пробовали? Каковы проблемы с вашей осторожностью? Что не работает? Вы не можете просто сказать: «Я хочу этого. Спасибо». – HAS

ответ

0

Я предполагаю, что у вас есть выходы к ColorWell и TextField, связанные:

IBOutlet NSColorWell *colorWell; 
IBOutlet NSTextField *textfield; 

Вы должны установить некоторые вещи о NSColorPanel:

[NSColor setIgnoresAlpha:NO]; 
[[NSColorPanel sharedColorPanel] setShowsAlpha:YES]; 

При открытии или закрытии окна, которые могли бы отобразить цветной панели вы должны быть уверены, что вы не останетесь рядом с цветной панелью:

if ([NSColorPanel sharedColorPanelExists]) 
{ 
    [[NSColorPanel sharedColorPanel] close]; 
} 

Тогда в вашем методе IBAction для цвета хорошо вы можете получить цвет:

NSColor *color; 
color = [colorWell color]; 

Вы можете установить шрифт и цвет с:

[textField setFont:anNSFont *]; 
[textField setTextColor:color]; 

EDIT:

Я только что понял вас 'также спрашивает, как получить новый шрифт с панели шрифтов.

Чтобы получить новый шрифт с панели шрифтов, ваш код должен работать нормально, если только «шрифт» (старый шрифт) не был инициализирован. Если шрифт равен нулю, тогда [sender convertFont: font] вернет значение null.

Печатается нуль:

- (void)changeFont:(id)sender 
{ 
    NSFont *font; 

    font = [sender convertFont:font]; // Reset the font 

    NSLog(@"%@", font); 

} 

Печатается шрифт:

- (void)changeFont:(id)sender 
{ 
    NSFont *font = [NSFont fontWithName:@"Helvetica" size:12]; // Initialize the old font 

    font = [sender convertFont:font]; // Reset the font 

    NSLog(@"%@", font); 

} 
Смежные вопросы