如何订阅 Spec 对象 (TextInputField)

How to subscribe to Spec object (TextInputField)

我有带有 textArea 和 textInputField 的简单 Spec 对象。在它旁边我有另一个 Spec 不知道的对象。当我将一些文本写入 textInputField 时,我需要将包含此文本的消息发送到另一个 class。我试过播音员,但它不起作用。有没有办法通知其他对象并发送此文本?

您正在寻找 acceptBlock: 每次文本值更改时都会调用一个块:

| cm |
cm := TextInputFieldPresenter new.
cm autoAccept: true.
cm acceptBlock: [ :txt | doSomething with: txt.].

您可以在规格手册中找到这个以及更多关于规格的信息: http://books.pharo.org/spec-tutorial/

请注意,在较新版本的 pharo 中,规范 类 已从 ...Model 重命名为 ...Presenter,这尚未反映在手册中。所以你使用 TextInputFieldModel 还是 TextInputFieldPresenter 取决于你的 pharo 版本。