[英]Displaying NSProgressIndicatorSpinningStyle in NSStatusItem and then hiding it
[英]Why is the NSStatusItem displaying multiple times?
NSStatusItem附加了NSMenu,并且NSMenu的按钮之一打开一个NSWindow。 只要单击这些按钮之一,该窗口就会按预期打开并正常工作,但是NSStatusItem的另一个显示将打开。
NSStatusItem是一个时钟,因此我可以看到它正在正确更新。 但是,克隆的NSStatusItem没有自己的菜单。 如果我按下使窗口次数更多的按钮,则会弹出NSStatusItem的更多克隆版本。
除此之外,一切正常。
没有太多的信息可利用,但是我没有其他可以帮助您的信息。 我很乐意提供更多信息或尝试一些操作。
编辑:每次单击该按钮时,都会以某种方式调用awakeFromNib,这就是为什么另一个半工作的NSStatusItem发生的原因。
编辑:临时解决方法是将awakeFromNib方法放在dispatch_once
。
编辑:添加了单击按钮时触发的方法,如@zpasternack所建议
- (IBAction)preferences:(id)sender {
self.windowController = [[NSWindowController alloc] initWithWindowNibName:@"PreferencesWindow"];
[[self windowController] showWindow:self];
}
NSStatusItem是否包含在PreferencesWindow笔尖中? 也许可以这样解释,因为每次单击按钮时都在加载笔尖。
另外,是否有理由每次单击按钮都需要重新创建该窗口? 也许您只能第一次做?
- (IBAction)preferences:(id)sender {
if( self.windowController == nil ) {
self.windowController = [[NSWindowController alloc] initWithWindowNibName:@"PreferencesWindow"];
}
[[self windowController] showWindow:self];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.