新手在这里,通过“Pharo by Example”。这本书提到EllipseMorph new openInWorld
导致调用Morph openInWorld
的示例,而EllipseMorph defaultColor
是一个被覆盖的消息:如何使用系统浏览器或其他方式解决这个问题?
通常的 find方法方式只能在紧接选的类中找到匹配项。通常可以查找哪个类会响应(例如)Foo bar
吗?
更新: 感谢所有的建议(Finder,Spotter);调试器是我遇到过的工具中最令人大开眼界的!
答案 0 :(得分:4)
Smalltalk提供了许多可以帮助您解决此问题的工具和浏览器。如果您已经知道消息的名称,则可以:
在这种情况下,您还可以在游乐场中键入$sub_str1
,然后从菜单中选择 Debug-It 。这将打开一个调试器,选择EllipseMorph new openInWorld
。如果您点击进入,则第一行会更改为new
。这表示此处使用了来自EllipseMorph class(Behavior) new
的{{1}}。如果您继续使用进入(2次),您会看到它变为new
。只需跟踪发送的消息跟踪,您就可以看到所有内容的实现位置。
答案 1 :(得分:4)