GUI и Squeak в первую очередь сбивают с толку. Довольно легко создать графический интерфейс с помощью Squeak. По сути, вы просто рисуете несколько прямоугольников, копируете несколько текстовых полей, ореолы почти каждого морфа допускают клонирование, а затем вы можете поместить эти морфы в ваш новый пользовательский интерфейс. Труднее добавить ВАШЕ поведение в пользовательский интерфейс, который вы только что создали, так как вам нужно как-то найти свой виджет в браузере кода.
Это та часть, где я хотел бы отметить, что мне кажется, что реализация Morphic в Squeak очень раздражает. Так что, может быть, я все это ошибаюсь, но это то, как я это вижу. Morphic был разработан, чтобы позволить вам графически создать свой собственный пользовательский интерфейс всего за несколько кликов. И это было разработано в среде самопрограммирования, где нет разрыва между объектами браузера. Регистрация вашего клона в обычном кодовом дереве - это тривиальность в Self. (Конечно, экспортировать вашу программу, конечно, нетривиально, но в Smalltalk это всегда непросто).
Итак, реальный морфический код, с которым я сталкиваюсь, обычно рассматривает морфы как любые другие объекты инфраструктуры пользовательского интерфейса: создание пользовательского интерфейса из кода, игнорирование графического построения. Я не видел удобного способа «заморозить» морфический пользовательский интерфейс в файл, как это делает Interface Builder в Mac OS X. Или, в более общем случае, если вы щелкаете морфический пользовательский интерфейс вместе, доступ к нему из кода затруднен. Браузер.
Намек Нила на то, чтобы оставить в стороне всю морфию и обратиться к MVC, может быть понятен. Тем не менее, несколько раз, когда мне приходилось иметь дело с пользовательскими интерфейсами в Squeak, я изучал код генерации пользовательского интерфейса по всему изображению и пытался имитировать их стиль.