如何在 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:
的其他实现者。
如何在 运行 时间在 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:
的其他实现者。