作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 NSFontPanel
的应用程序。我像这样打开字体面板:
NSFontManager *fontManager = [NSFontManager sharedFontManager];
[fontManager orderFrontFontPanel:self];
[fontManager setDelegate:self];
[fontManager setTarget:self];
[fontManager setAction:@selector(changeFont:)];
然后我有一个 -(void)changeFont:(id)sender
方法,它对面板中的字体更改使用react。这一切都运作良好。
现在,我想禁用一些字体选项,因此我实现了 NSFontPanelValidation
协议(protocol)的 validModesForFontPanel
方法:
- (NSUInteger)validModesForFontPanel:(NSFontPanel *)fontPanel {
NSLog(@"validModesForFontPanel");
return NSFontPanelFaceModeMask | NSFontPanelCollectionModeMask | NSFontPanelSizeModeMask;
}
但是,该方法永远不会被调用。在文档中,它说:“此消息沿着响应者链发送到实现该方法的第一个响应者。理想情况下,该对象应该是第一个发现的也实现了changeFont的响应者:。”
我确实在此响应程序中实现了 changeFont
,因此除非有其他我不知道的响应程序,否则我不知道此消息会发生什么。
有人有什么建议吗?
最佳答案
您没有为小组指定任何响应者,而只是为经理指定。
这应该可以做到:
NSFontPanel* fontPanel = [fontManager fontPanel:YES];
[fontPanel setDelegate:self];
[fontPanel makeKeyAndOrderFront:sender];
关于objective-c - validModesForFontPanel 从未调用过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9359418/
背景 我最近在 merge 期间遇到了一个意外未 merge 的文档文件的问题。 无论出于何种原因,我搞砸了 merge 并有效地删除了文件(和其他几个文件),因为我忘记了它们的存在。 现在我想查看我
我在我的网站上使用旧的 mysql 版本和 php 版本 4。 我的表结构: | orders_status_history_id | orders_id | orders_status_id |
我是一名优秀的程序员,十分优秀!