我需要在Cuis中更改哪种方法,classPasteUpMorph才能有一个丢弃的变形来捕捉到10乘10像素的网格?
打开方法查找器:World/Open/Message Names在文本框中输入"drop"。单击(搜索)。显示的第一条消息是#acceptDroppingMorph:event:我们很幸运!在PasteUpMorph实现的末尾添加:
p := aMorph morphPosition.
p := (p x roundTo: 10) @ (p y roundTo: 10).
aMorph morphPosition: p.
就是这样。也许你想使用自己的变形而不是世界,那么你可以向世界添加一个DragAndDropAreaMorph,并且该类添加了这个方法:
acceptDroppingMorph: aMorph event: evt
| p |
super
acceptDroppingMorph: aMorph
event: evt.
p := aMorph morphPosition.
p := (p x roundTo: 10) @ (p y roundTo: 10).
aMorph morphPosition: p