Smalltalk中ActionButton的发送者是什么?

时间:2019-04-25 05:13:54

标签: smalltalk visualworks

我有41个按钮,当您在VisualWorks中单击它们时,它们必须变为不可见。只需一行。

(self builder componentAt: #buttonWhichCalledTheMethod) beInvisible.

我尝试过使用self,但这就是整个表格。

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

有什么办法可以使用某些东西作为发件人?

1 个答案:

答案 0 :(得分:0)

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

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

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