Добавить обработку событий клика в morph
Я хочу легко обработать щелчок мышью на морфе. Могу ли я сделать что-то вроде:
'hello' asMorph
onClick: [ :e | "baboom" ];
openInHand
?
1 ответ
Решение
Что-то вроде этого?
StringMorph subclass: #ClickMorph
instanceVariableNames: 'action'
classVariableNames: ''
category: 'MyMorph'
handlesMouseDown: evt
^true
mouseDown: evt
evt hand waitForClicksOrDrag: self event: evt
mouseUp: evt
action value
action
^ action
action: anObject
action := anObject
Вы можете назвать это как
(ClickMorph contents: 'Click me')
action: [Transcript open];
openInWorld
Конечно, необходимо иметь блок и убедиться, что вы можете реагировать на клик.