Objective c NSFontManager设置目标:不';模态窗口不能工作
我有一扇窗户。在其控制器中,我执行以下操作:Objective c NSFontManager设置目标:不';模态窗口不能工作,objective-c,xcode,cocoa,Objective C,Xcode,Cocoa,我有一扇窗户。在其控制器中,我执行以下操作: [[NSFontManager sharedFontManager] orderFrontFontPanel:self]; 而且效果很好。字体管理器在我的控制器中调用changeFont:方法 但是如果我写这段代码: [[NSFontManager sharedFontManager] setTarget:self]; [[NSFontManager sharedFontManager] setAction:@selector(qwe:)]; [[
[[NSFontManager sharedFontManager] orderFrontFontPanel:self];
而且效果很好。字体管理器在我的控制器中调用changeFont:
方法
但是如果我写这段代码:
[[NSFontManager sharedFontManager] setTarget:self];
[[NSFontManager sharedFontManager] setAction:@selector(qwe:)];
[[NSFontManager sharedFontManager] orderFrontFontPanel:self];
它不起作用。当我在字体面板中选择字体时,它不会调用qwe:method
原因是窗口是模态的(当我显示没有模态会话的窗口时,所有工作正常)。问题是为什么目标动作变量不适用于模态窗口
谢谢你的帮助 我也看到了。设置目标和操作不会导致调用操作方法 所做的工作如下:(1)设置委托,而不是目标;(2)将方法命名为changeFont;(3)不设置操作:
@property (retain) NSFont *font;
...
- (void)changeFont:(id)sender
{
self.font = [sender convertFont:self.font];
}
- (IBAction)actionSetFont:(id)sender
{
NSFontManager *fontManager = [NSFontManager sharedFontManager];
[fontManager setDelegate:self];
NSFontPanel *fp = [NSFontPanel sharedFontPanel];
[fontManager setSelectedFont:self.font isMultiple:NO];
[fp makeKeyAndOrderFront:self];
}
我也看到了。设置目标和操作不会导致调用操作方法 所做的工作如下:(1)设置委托,而不是目标;(2)将方法命名为changeFont;(3)不设置操作:
@property (retain) NSFont *font;
...
- (void)changeFont:(id)sender
{
self.font = [sender convertFont:self.font];
}
- (IBAction)actionSetFont:(id)sender
{
NSFontManager *fontManager = [NSFontManager sharedFontManager];
[fontManager setDelegate:self];
NSFontPanel *fp = [NSFontPanel sharedFontPanel];
[fontManager setSelectedFont:self.font isMultiple:NO];
[fp makeKeyAndOrderFront:self];
}