如何在 Pharo 中编辑 WorldMenu

How can I edit the WorldMenu in Pharo

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

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

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

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

选择任意 class,然后在 class 侧添加您的 #menuCommandOn: 方法

menuCommandOn: aBuilder
  <worldMenu>
  self showsItem ifTrue: [
    (aBuilder item: self itemToken)
      order: 0.1;
      action: [self performItemAction]]

这样,即使每次弹出世界菜单时都会调用该方法,它也会添加菜单项只有在背后的逻辑[=12] =] 启用它。请注意,菜单的动态特性并不要求您删除菜单项,您只需不添加它们即可。在您的情况下,这样的逻辑应该反映 Web 服务的可用性。

#itemToken 消息发送是 Symbol 的占位符,你想用它来识别项目。换句话说,您可能希望将其作为文字内联而不是发送 #itemToken 消息。此 Symbol 将用作项目 label

有关更多可选配置功能,请查看 #menuCommandOn: 的其他实现者。