首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么这个Spec 2应用程序的样式不工作?

为什么这个Spec 2应用程序的样式不工作?
EN

Stack Overflow用户
提问于 2021-01-07 11:26:10
回答 2查看 109关注 0票数 1

我正在尝试添加样式到SpTextPresenter (法老9,Spec 2,Windows10)。我有MyApp课程:

代码语言:javascript
复制
SpApplication subclass: #MyApp
    instanceVariableNames: ''
    classVariableNames: ''
    package: 'MyAdm'

使用类方法uniqueInstance (类实例-“单例”思想是从LibC复制粘贴的):

代码语言:javascript
复制
uniqueInstance
    ^ uniqueInstance ifNil: [ uniqueInstance := self new ]

和一个实例方法initialize

代码语言:javascript
复制
initialize
    super initialize.
    self useBackend: #Morphic with: MyAppConfiguration new.

MyAppConfiguration类:

代码语言:javascript
复制
SpMorphicConfiguration subclass: #MyAppConfiguration
    instanceVariableNames: ''
    classVariableNames: ''
    package: 'MyAdm'

configure方法

代码语言:javascript
复制
configure: anApplication
    super configure: anApplication.
    self styleSheet addClass: 'text' with: [ :style |
        style addPropertyFontWith: [ :font |
            font bold: true;
                  size: 20;
                  name: 'Courier'
        ].
    ].

在我所做的代码中:

代码语言:javascript
复制
.....
    "presenterClass is an argument which is a class of my presenter"
    presenter := MyApp uniqueInstance newPresenter: presenterClass.
    presenter openWithSpec.
    presenter updatePresenter.
....

我有几个演示程序,但其中一个实际上包含text变量,它是在initializePresenters方法中创建的:

代码语言:javascript
复制
initializePresenters
    text := self newText addStyle: 'text'.
    super initializePresenters

但是结果是不好的-- text有标准的视图,有一个标准的字体,没有什么改变!窃听器在哪里?我想在text ( SpTextPresenter类型)中看到我的自定义字体。

编辑:顺便说一下,this也不起作用。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-01-07 20:32:48

是的,如果您声明了一个单例,并且保存了映像,它将在会话之间保持活动。就像法老里的任何东西一样,因为这是一个生活环境。

现在,这个问题让我觉得你缺乏法老的基本知识。正如我之前在这里所说的(在其他问题中),用堆栈溢出学习不是学习法老的最好方法。

看看这个网站:https://pharo.org/documentation,那里有很多学习的资源。

此外,有一个不和谐的服务器,您可以要求任何东西,而且会有很多人愿意帮助您(包括我)那里:https://discord.gg/QewZMZa

票数 3
EN

Stack Overflow用户

发布于 2021-01-07 17:04:37

其次,我从新手的角度来理解错误的原因。

我编写了一个单例(uniqueInstance)

  • Then,我添加了实现样式functionality

  • It的代码的其他部分,但
  1. 没有工作
  2. ,而我的理解是,每次运行应用程序时,都不会重新创建uniqueInstance。我添加了uniqueInstance := nil,我发现造型开始起作用了。也许uniqueInstance被保存在图像(?)当我添加所需的代码部分时,应用程序继续使用图像中的旧uniqueInstance吗?我不确定..。但是将它分配给nil解决了问题。因此,我决定避免这种单例方法,并创建应用程序实例explicitly.
  3. To --诚实地回答问题中的代码没有帮助--但是THIS VERSION工作得很好。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65611485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档