如何在Pharo中编辑WorldMenu

如何在Pharo中编辑WorldMenu,menu,pharo,morphic,Menu,Pharo,Morphic,如何在运行时删除或添加Pharo中的WorldMenu条目 例如,我有一个菜单选项,可以加载用于使用web工具的额外工具。运行设置这些工具的代码将包括向菜单添加项目以停止和启动web服务。我不希望这些停止和启动项目在正常使用,但设置项目的代码将在图像中 我已经看到并使用了本文中的方法,但是这会在加载代码时添加项 让我澄清一下@Peter和我的意思 选择任何类,然后在类端的 menuCommandOn: aBuilder <worldMenu> self showsItem i

如何在运行时删除或添加Pharo中的WorldMenu条目

例如,我有一个菜单选项,可以加载用于使用web工具的额外工具。运行设置这些工具的代码将包括向菜单添加项目以停止和启动web服务。我不希望这些停止和启动项目在正常使用,但设置项目的代码将在图像中


我已经看到并使用了本文中的方法,但是这会在加载代码时添加项

让我澄清一下@Peter和我的意思

选择任何类,然后在类端的

menuCommandOn: aBuilder
  <worldMenu>
  self showsItem ifTrue: [
    (aBuilder item: self itemToken)
      order: 0.1;
      action: [self performItemAction]]
menuCommandOn:aBuilder
自展场地(如适用):[
(备份项:self-itemToken)
顺序:0.1;
行动:[自我执行]]
这样,即使每次世界菜单即将弹出时都会调用该方法,但只有当
#showsItem
背后的逻辑启用该方法时,该方法才会添加菜单项。请注意,菜单的动态特性并不要求您删除菜单项,而只是不添加它们。在您的情况下,这样的逻辑应该反映web服务的可用性

#itemToken
消息发送是要用于标识项目的
符号的占位符。换句话说,您可能希望将其作为文本内联,而不是发送
#itemToken
消息。此
符号
将用作项目
标签


有关更多可选配置功能,请查看
#menuCommandOn:

的其他实现者。实际上,这个问题的解决方案应该是动态的,因为带有
#menuCommandOn:
pragma的
实现者在每次世界菜单即将弹出时都会被收集和调用。问题是我这样做了在我运行代码之前,我不想让我的物品购物——不仅仅是让代码在imageWell中,
pragma确定调用了该方法。您可以在那里有条件地添加项目。