准备好进行重大黑客攻击了吗?
function realMaximize(){
if(this.maxInternal){
return;
}
if(this.maximized){
this.oldMaxHeight = this.maxHeight;
this.maxHeight = undefined;
this.maxInternal = true;
this.restore();
this.maximize();
this.maxInternal = false;
}else{
this.maxHeight = this.oldMaxHeight;
}
}
Ext.onReady(function() {
var w = Ext.create('Ext.window.Window',{
title: 'Hello',
maximizable: true,
width: 400,
height: 300,
maxHeight: 350
});
w.addListener('maximize',realMaximize);
w.show();
});
啊!可怕。它有什么作用?当它检测到一个最大值时,它会存储当前的最大高度并将其删除。然后它切换最大化,以便 UI 更新以尊重这个新的最大值(也许有更好的方法?)。最后,它必须设置并检查一个标志,否则它将进入无限循环(maximize
再次调用该函数)。
回到窗口并不难。记住的大小一定没问题,所以我们不需要递归调用函数。