如果宽度函数为非零宽度元素返回 0,我不明白为什么要在所有元素上实现宽度函数。以下为我返回 0。
Shoes.app do
p = para "My width is: "
para p.width
end
这是为什么?(app.width 不返回 0)
问题是 para 对象的大小是在绘制时动态确定的。在您创建第二个段落时,实际上尚未布置任何内容,因此尚未设置宽度。您可以看到绘制后访问宽度按预期工作:
Shoes.app do
p = para "My width is: "
@para = para p.width
button 'Get Width' do
@para.text = p.width
end
end
解决这个问题的方法是使用 start 方法,该方法在第一次绘制包含槽时调用:
Shoes.app do
p = para "My width is: "
width = para p.width
start do
width.text = p.width
end
end