什么是Smalltalk中ActionButton的发件人?

问题描述 投票:0回答:1

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

(self builder componentAt: #buttonWhichCalledTheMethod) beInvisible.

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

This context也产生错误does not understand。我点击按钮后都发生了这两种情况。

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

smalltalk visualworks
1个回答
0
投票

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

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

PS:不要使用thisContext#doesNotUnderstand:

© www.soinside.com 2019 - 2024. All rights reserved.