这是问题所在:在-menuNeedsUpdate:NSMenu委托方法中我有条件地隐藏了菜单项.当我调用[item setHIDden:YES]时,带有自定义视图的菜单项不会隐藏,但其他“香草”菜单项会隐藏.
我的自定义视图是在自己的XIB中构建的,我通过自定义的NSVIEwController访问它.
更新
即使我在Interface Builder中选中隐藏复选框,菜单项仍然可见,并删除它隐藏在代码中的行.
更新2
我还尝试在菜单项上设置隐藏之前和之后设置隐藏在自定义视图上.结果就好像菜单项没有隐藏,但视图是;视图的控件不可见,但它们应该存在差距.
更新3
我修改了Apple的MenuItemView示例代码,以便在添加之后隐藏其中一个菜单项(插入[menuItem setHIDden:YES];在第87行),它与我的代码具有相同的效果(也就是说,没有).
我开始认为隐藏此菜单项的唯一方法是将其视图设置为nil,当我需要隐藏它并在需要显示它时将其放回,但似乎不应该是必要的.
更新4
使用Mike的答案,下面是我正在使用的代码:
// Declared in the header fileIBOutlet NSMenuItem *prevIoUsMenuItem;IBOutlet NSMenuItem *togglingMenuItem; //Needs to be RETAINED. . .- (voID)menuNeedsUpdate:(NSMenu *)menu { BOol hIDeItem = YES; // Some criteria,obvIoUsly // Remove the menu item,if it was already present if ([menu indexOfItem:togglingMenuItem] >= 0) { [menu removeItem:togglingMenuItem]; } // Put it back if it should be visible if (!onePageVisible) { [menu insertItem:togglingMenuItem atIndex:[menu indexOfItem:prevIoUsMenuItem] + 1]; }}@H_404_34@解决方法 您可以根据需要删除/重新添加,而不是隐藏项目吗?[rootMenu removeItemAtIndex: 23];@H_404_34@ 总结以上是内存溢出为你收集整理的objective-c – 如何使用自定义视图隐藏菜单项?全部内容,希望文章能够帮你解决objective-c – 如何使用自定义视图隐藏菜单项?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)