如何解决如何更改 SpTextPresenter 中的字体?
Pharo 9,Spec 2 -- 我有一个带有 text
小部件的 Spec 2 演示者:
initializePresenters
text := self newText.
super initializePresenters
据我所知,它的类型是 SpTextPresenter
。如何更改此 text
的字体?字体,此小部件中所有显示文本的大小...例如,“Courier New”,9。
编辑 1:
我也试过:
text addStyle: { SpStyleSTONReader fromString:
'
Font {
#name: "Source Sans Pro",#size: 12,#bold: false,#italic: true
}' }.
但它不起作用,错误是:Improper store into indexable object
。
编辑 2:
我还发现了 this documentation。看来场景一定是:
- 将样式读取为 STON
- 在某处(哪里?)为所有应用程序设置样式。它们在 STON 中以其名称进行描述,因此可以在应用程序中以其名称进行引用。
- 调用
addStyle: 'the-name'
以便名称为the-name
的小部件将从加载的 STON 中引用自己的样式。
问题出在 2. - 我没有申请,只有一个演示者,我用 openWithSpec
打开。
解决方法
我直到现在才注意到这一点。
规范“样式”不能直接添加到组件中,但它们需要成为样式表的一部分。
样式表在您的应用程序中定义(特别是在您的应用程序配置中)。
您可以查看 StPharoApplication>>resetConfiguration
、StPharoMorphicConfiguration>>styleSheet
和 StPharoMorphicConfiguration>>styleSheetCommon
作为示例(您还将在那里看到使用 STON 来声明您的样式只是一种方便的方式,而不是强制性的)。>
这里是您将在那里找到的简化版本:
StPharoApplication >> resetConfiguration
self useBackend: #Morphic with: StPharoMorphicConfiguration new
StPharoMorphicConfiguration >> styleSheet
^ SpStyle defaultStyleSheet,self styleSheetCommon
StPharoMorphicConfiguration >> styleSheetCommon
"Just an example on how to build styles programatically ;)"
^ SpStyleSTONReader fromString: '
.application [
.searchInputField [
Font { #size: 12 }
]
]
'
然后您可以将样式添加到您的组件中:
text addStyle: 'searchInputField'
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。