gpt4 book ai didi

objective-c - NSFontManager setTarget : doesn't work for modal window

转载 作者:行者123 更新时间:2023-12-03 17:30:27 29 4
gpt4 key购买 nike

我有模态窗口。在其 Controller 中我这样做:

[[NSFontManager sharedFontManager] orderFrontFontPanel:self];

而且效果很好。字体管理器在我的 Controller 中调用 changeFont: 方法。

但是如果我写这段代码:

[[NSFontManager sharedFontManager] setTarget:self];
[[NSFontManager sharedFontManager] setAction:@selector(qwe:)];
[[NSFontManager sharedFontManager] orderFrontFontPanel:self];

这不起作用。当我在字体面板中选择字体时,它不会调用 qwe: 方法。

原因是窗口是模态的(当我显示没有模态 session 的窗口时,一切正常)。问题是为什么目标操作变体不适用于模式窗口?

感谢您的帮助。

最佳答案

这个我也看到了。设置目标和操作不会导致操作方法被调用。

所做的工作是这样的:(1)设置委托(delegate),而不是目标,(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];
}

关于objective-c - NSFontManager setTarget : doesn't work for modal window,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8121328/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com