使用IB,我将NSView(menuView)放在另一个内部。
我已经设置了我的插座并将其连接到menuView。
我想:“[self.menuView setHidden:NO]”会取消隐藏,但似乎无法正常工作。
我还需要做什么?
答案 0 :(得分:2)
IB视图对象是否连接到menuView变量?否则修改menuView将是一个无操作。我会在调试器中运行它,并确保在setHidden调用时menuView不为null。如果是,请返回IB并确保将视图连接到插座。
答案 1 :(得分:1)
您是否已经验证了menuView是否已连接(NSLog()之前显示它),并且它实际上有一些内容?
答案 2 :(得分:0)
menuView.hidden = NO;
可能?
答案 3 :(得分:0)
让我们用连接的插座Fred调用该对象。
你在笔尖中实例化了Fred,对吧?
你有Fred加载笔尖,对吧?
如果对这两个问题中任何一个问题的答案都是“否”,那么请忽略这个答案。
如果两者的答案都是“是”,那么继续阅读。
那是错的。弗雷德应该只做这两件事中的一件。有可能,你打算让弗雷德成为文件的所有者,并在那里连接连接。你在笔尖中创建的额外Fred就是那个 - 额外的Fred,第二个加载了nib的Fred。你有两个Freds,你报告连接的那个(响应一个动作消息,我猜)不是你连接到菜单视图的那个插座。
在笔尖中取消Fred,只留下加载笔尖的Fred。在nib中,将File的Owner声明为Fred的类,在Fred的实现中,确保在加载nib时你是File的所有者。
如果你正在使用NSWindowController加载它,你需要明确地将自己作为所有者;否则,NSWindowController是所有者。由于您希望Fred成为所有者,因此您需要在实例化时告诉窗口控制器。另一种方法是使用NSBundle直接加载笔尖,而无需插入窗口控制器。