Den 17.01.2011 07:18, skrev Sean P. DeNigris:
> I really like Announcements! It's so much easier to update complex GUIs when
> you can pass state :)
>
> I hit one glitch when unsubscribing... The CollaborActive book suggests
> unsubscribing in #delete. For complex UIs, this doesn't seem to work
> because #delete is only called for the one morph that was deleted, not for
> its submorphs (which may need to unsubscribe).
>
> I tried this:
> MyMorph>>delete
> super delete. "Must come first. Deleting a submorph before self =
> emergency evaluator"
> aSubmorphThatNeedsToUnsubscribe delete.
>
> SubmorphMentionedAbove>>delete
> self inventory announcer unsubscribe: self.
> super delete.
>
>
> But it seems like a lot of work and coupling. Is there no hook that is
> guaranteed to be called when a morph is going away - i.e. it or a morph in
> the owner chain is being deleted?
>
> Thanks.
> Sean
AFAICT, #outOfWorld: might be the one you're looking for, it's called on
self and submorphs as part of #removeMorph:
So I THINK you'd get away with:
SubmorphMentionedAbove>>outOfWorld: aWorld
self inventory announcer unsubscribe: self.
super outOfWorld: aWorld
.
Cheers,
Henry