Добавить меню в ListModel
Как добавить меню в список моделей с приличными действиями?
Я видел такой код:
list menu: [ :menu |
menu
add: 'Name'
action: [ "some action" ].
но когда я делаю это, я получаю ошибку, потому что блок не оценивается, а отправляется как сообщение чему-то другому...
Есть ли какие-либо рекомендации для меню?
1 ответ
Решение
Меню были переделаны.
Теперь вы должны сделать что-то вроде
list menu: [ :menu | aMenu addGroup: [:aGroup |
aGroup addItem: [ :item |
item
name: 'Inspect' translated;
action: [ self inspectSelectedObjectInNewWindow ];
shortcut: $i command mac | $i alt win | $i alt unix ].
aGroup addItem: [ :item |
item
name: 'Explore' translated;
action: [ self exploreSelectedObject ];
shortcut: $i shift command mac | $i shift alt win | $i shift alt unix ] ].
НТН,
Бенджамин Ван Ризегем
#РЕДАКТИРОВАТЬ: ListModel по-прежнему использует старые меню (по причине совместимости в Pharo 3.0). Рабочий пример
ListModel new
menu: [:m |
m
add: 'test'
target: [self halt ]
action: #value.
m ];
openWithSpec
Обратите внимание, что блок меню должен возвращать меню (ограничение от PluggableListMorph, которое должно быть инкапсулировано)