什么是Smalltalk中ActionButton的发件人



我有41个按钮,当你在VisualWorks中点击它们时,它们必须变得不可见。这只是一行这样做。

(self builder componentAt: #buttonWhichCalledTheMethod) beInvisible.

我试过用self,但这就是整个形式。

This context还会产生错误does not understand。两者都发生在我点击按钮之后。

有没有办法使用某些东西作为发件人?

我不确定我是否完全理解您要实现的目标。您似乎尝试使用相同的代码使触发当前正在运行的方法的按钮不可见。由于小部件和应用程序代码的解耦,实际上不可能猜测哪个按钮触发了某个方法。一个简单的解决方案是保留一个字典,其中映射了选择器和按钮 ID,并且可以查找。

调用这些方法的方式是通过在传递选择器#actionFor:中创建的块,因此,如果您的按钮与其选择器具有相同的 ID,则可以覆盖#actionFor:,不仅执行键,还可以禁用按钮。

PS:永远不要使用thisContext#doesNotUnderstand:

相关内容

最新更新