【问题标题】:What is sender for ActionButton in Smalltalk?Smalltalk 中 ActionButton 的发送者是什么?
【发布时间】:2019-04-25 05:13:54
【问题描述】:

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

(self builder componentAt: #buttonWhichCalledTheMethod) beInvisible.

我尝试过使用self,但这就是全部形式。

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

有什么方法可以将某物用作发件人吗?

【问题讨论】:

    标签: smalltalk visualworks


    【解决方案1】:

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

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

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

    【讨论】:

    • 当您单击这 41 个按钮中的任何一个时,只需调用一个方法使您单击的按钮不可见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-21
    相关资源
    最近更新 更多