- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
[编辑],Willeke 指出它是 menuDidClose:
而不是 menuWillClose:
。我的代码实际上该部分是正确的。纠正该帖子以防其他人发现此研究类似的问题。
我确信这只是一个 cocoa 新手问题,但我已经绞尽脑汁几个小时了。我已经阅读了 NSMenu 和 NSMenuDelegate 文档几次,试图找出我缺少的内容,但它看起来很简单。
我有一个用于首选项窗口的窗口 Controller ,带有工具栏和三个 View 。窗口 Controller 被声明为 NSMenuDelegate。
@interface PrefsController : NSWindowController <NSMenuDelegate, NSWindowDelegate, NSOpenSavePanelDelegate>
此问题是第一个 View 上的 NSPopUpButton。与弹出按钮关联的菜单工作正常。我可以通过关联的 IBOutlet 变量修改菜单等。它绑定(bind)到共享用户默认 Controller 以获得选定的值,并且工作正常。
但是访问菜单时不会调用 menuWillOpen:
和 menuDidClose:
方法。
- (void)menuWillOpen:(NSMenu *)menu {
if (menu == myPopupButton.menu) {
[self updateMenuImages:NSMakeSize(32, 32)];
}
}
- (void)menuDidClose:(NSMenu *)menu {
if (menu == myPopupButton.menu) {
[self updateMenuImages:NSMakeSize(16, 16)];
}
}
对于我几乎可以肯定是一个愚蠢的错误,我深表歉意,但我被难住了。
最佳答案
菜单委托(delegate)并不经常使用,因此 Apple 并没有让它们在 Interface Builder 中设置起来变得太容易。相反,请在 awakeFromNib
中执行此操作:
myPopupButton.menu.delegate = self;
关于objective-c - 菜单将打开 : and menuDidClose: not invoked for NSMenuDelegate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38549789/
[编辑],Willeke 指出它是 menuDidClose: 而不是 menuWillClose:。我的代码实际上该部分是正确的。纠正该帖子以防其他人发现此研究类似的问题。 我确信这只是一个 coc
我是一名优秀的程序员,十分优秀!