Llo*_*d18 0 xcode cocoa objective-c
我有模态窗口.在它的控制器中我这样做:
[[NSFontManager sharedFontManager] orderFrontFontPanel:self];
Run Code Online (Sandbox Code Playgroud)
它工作正常.字体管理器changeFont:在我的控制器中调用方法
但是,如果我写这个代码:
[[NSFontManager sharedFontManager] setTarget:self];
[[NSFontManager sharedFontManager] setAction:@selector(qwe:)];
[[NSFontManager sharedFontManager] orderFrontFontPanel:self];
Run Code Online (Sandbox Code Playgroud)
它不起作用.当我在字体面板中选择字体时,它不会调用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];
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
683 次 |
| 最近记录: |