Pharo Smalltalk:如何使用 TextMorph 创建输入字段,然后从输入字段中获取数据?

Pharo Smalltalk: How to create an input field using TextMorph and then get the data off the input field?

我对 Pharo、Smalltalk 完全陌生。我正在开发一个将温度从华氏度转换为摄氏度的小应用程序。谁能告诉我如何使用 TextMorph 创建输入字段并将其显示在 window 上,如屏幕截图所示。此外,还可以在单​​击按钮时从输入字段中取回数据。下面的代码是我到目前为止所做的。 Screenshot

class TemperatureMorph

 BorderedMorph subclass: #TemperatureMorph
        instanceVariableNames: 'tempInputField counter'
        classVariableNames: ''
        package: 'Assignment'

初始化方法:包含标签、文本框和按钮。

initialize 
    | headingLabel converterButton|
    super initialize.
    self bounds: (0@0 corner:300@300).
    self color: Color gray.

    headingLabel := StringMorph contents: 'Converter'.
    headingLabel position: 130@20. 
    self addMorph: headingLabel.

    tempInputField := TextMorph new.     
    tempInputField position: 50@50. 
    self addMorph: tempInputField.

谢谢

您已经可以在屏幕截图中看到必要的代码,您只需将 StringMorph 的构造替换为 TextMorph 的构造即可。我建议你看看 Pharo by Example 这本书。它有一章是关于 Morphic 的,它是 Pharo 中的 UI 框架。

yourTextMorph := TextMorph new.
yourTextMorph contents: 'initial text'.
ownerMorph addMorph: yourTextMorph.

我猜您还想从 TextMorph 读回内容。您可以使用 yourTextMorph contents 来实现。另见 Pharo Smalltalk: Reading from TextMorph

另一方面,如果您在 Pharo 中做 UI 除了学习之外的其他事情(看起来 OP / 是 / 学习,所以这可能不适用)。您应该查看 Glamour 或 Spec。两者都有非常简单的文本输入和控制系统。

Spec Glamour