在ExtJS中隐藏系统菜单项

时间:2011-02-16 09:11:54

标签: extjs air

我有以下代码

var menus = Ext.air.SystemMenu;

    menus.add('File', [
        actions.newTask, 
        actions.newList, 
        actions.newFolder, 
        '-',{
            text:'Import...',
            handler: function(){
                var importer = new tx.Importer();
                importer.doImport(function(){
                    tx.data.lists.load();
                    root.reload();
                    loadList('root');
                    Ext.Msg.hide();
                });
            }
        },{
            text:'Export...',
            handler: function(){
                new tx.Exporter();
            }
        },
        '-', 
        actions.quit
    ]);

我想隐藏'导入'项。我已经使用了3.3.0版的API,并且没有Ext.air.SystemMenu类的隐藏方法。我该如何隐藏它?。

1 个答案:

答案 0 :(得分:1)

为您的导入菜单按钮添加ID:

{
     text:'Import...',
     id: 'importBtn',
     handler: function(){
         var importer = new tx.Importer();
         importer.doImport(function(){
             tx.data.lists.load();
             root.reload();
             loadList('root');
             Ext.Msg.hide();
         });
     }
}

在源代码中有一个可见性方法(只是禁用按钮):

 setVisible : function(v){
    // could not find way to hide in air so disable?
    nativeItem.enabled = !v;
 },

所以你只需要在按钮上调用这个方法:

Ext.getCmp('importBtn').setVisible(false);

看起来它没有提供完全隐藏它的方法,因为setVisible方法只禁用它。