嗨,我正在尝试编写一个使用非标准文本作为按钮的模式。也就是说,根据文档,需要一个带有文本OK 、 Yes 、 No或Cancel 的按钮来关闭模式。在这种情况下,我有几个模式,其中“OK”不是“继续”,“Cancel”不是“现在”。我看到根据文档,您可以执行以下操作:
acknowledgeButton = Button Box( acknowledgeText, acknowledgeButton << Close Window ),
为了使用带有不同文本的按钮来关闭模态框。问题是,结果行为有点奇怪。具体来说,单击按钮时,按钮会消失,但在模态框消失之前会有延迟,因此大约半秒钟的时间里您仍然可以看到模态框,只是没有按钮。我可以做些什么来获得标准的“确定”/“取消”行为,即单击后立即关闭模态框?
我的模态的完整代码:
Names Default To Here( 1 );
simpleMessageModal = Function( {title, message, acknowledgeText},
{Default Local},
result = Associative Array();
modal = New Window( title,
<<MODAL></MODAL>
Edit: more context info:<BR />MacOS 13.3.1, 32 GB RAM
2.6 GHz 6-Core Intel Core i7
JMP 17
要补充一点,我从这里的文档中得到了这个: https://www.jmp.com/support/help/zh/15.2/index.shtml#page/jmp/construct-a-modal-window.shtml
除了提到的行为之外,当我在关闭模态之前单击“继续”按钮时,我还会听到错误提示音。
在 Windows 11 上运行,配备 I7-9700K 处理器和 32 GB RAM,我在单击按钮后关闭窗口时没有遇到任何延迟。
如果其他人遇到此问题并遇到相同的问题:
我看见这个帖子在我帖子的“建议”部分,并决定尝试一下。 具体我的代码是:
invisibleOkButton = Button Box( "OK", <<VISIBILITY></VISIBILITY>
这导致了与标准“确定”按钮相匹配的行为。
我不是 100% 确定这是按钮按下和模态消失之间延迟的原因,但在这种情况下按下按钮会启动网络请求,并且延迟似乎与该时间匹配(即按下按钮 - >按钮消失-> 网络请求运行 -> 请求完成 -> 模态消失)。 所以这可以解释为什么延迟并不总是表现出来,因为如果它不是在等待网络请求或类似的慢速,它会太快而无法查看。