【问题标题】:Add menu to ListModel将菜单添加到 ListModel
【发布时间】:2014-08-11 10:16:14
【问题描述】:

如何将菜单添加到具有良好操作的列表模型?

我见过一些类似的代码:

list menu: [ :menu |
  menu
    add: 'Name'
    action: [ "some action" ].

但是当我这样做时,我会收到一个错误,因为该块没有被评估而是作为消息发送给其他东西......

有菜单指南吗?

【问题讨论】:

    标签: pharo spec-ui


    【解决方案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 ] ].
    

    HTH,

    本杰明·范·瑞塞格姆

    #

    编辑:ListModel 仍在使用旧菜单(出于在 Pharo 3.0 中的兼容性原因)。 一个工作示例是

    ListModel new
        menu: [:m | 
            m 
                add: 'test' 
                target: [self halt ] 
                action: #value. 
            m ];
        openWithSpec
    

    请注意,菜单块应返回菜单(应封装的 PluggableListMorph 的限制)

    【讨论】:

    • 如果有帮助,我们可以写一个小教程去spec网站-spec.st
    • 当我这样做时,我得到:MenuMorph(Object)>>doesNotUnderstand: #addGroup:。我有正确的版本吗?
    • 那一定是 Spec 中的问题。你能在这里举报github.com/spec-framework/spec/issues,我今天晚些时候再看看
    • Pharo 6.1 仍在使用旧模型(最后一个代码 sn-p),但 MenuMorph 不再采用 action:,现在是 m add: 'test' target: self selector: #messageToSend.
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-04
    • 1970-01-01
    • 1970-01-01
    • 2015-09-30
    • 1970-01-01
    • 2012-02-23
    • 2019-02-02
    相关资源
    最近更新 更多