我的目标:我想将快捷方式绑定到此对话框。如果用户输入键盘快捷键,则必须出现对话框。我修复了快捷方式,对话框还没有。任何帮助或提示将不胜感激。
答案 0 :(得分:0)
sap.ui.getCore().byId("aboutBtn").firePress();
//最好放入try catch方法..以防关于按钮不可用。
更新:动作是根据应用和当前屏幕用户动态构建的。
因此,当我们使用上述代码时,它可能会失败,因为@Matti说。 我看到的最佳解决方案是先触发操作按钮..
try{
sap.ui.getCore().byId("aboutBtn").firePress();
}catch(e){
sap.ui.getCore().byId("actionsBtn").firePress(); //this creates action menu
sap.ui.getCore().byId("aboutBtn").firePress();
}
我同意它不是一个干净的解决方案。 //如果我发现更好的东西会更新...
答案 1 :(得分:0)
好的,我已经找到了一种不使用按钮的方法。这使得它在使用无头配置运行时也能正常工作。这是代码:
new sap.ushell.ui.footerbar.AboutButton().firePress();
我的控制器中有以下功能,我在onInit()上加载:
registerKeyListeners: function() {
var map = [];
onkeydown = onkeyup = function(e) { //eslint-disable-line
e = e || event; //eslint-disable-line
map[e.keyCode] = e.type === "keydown";
};
window.addEventListener("keydown", function(e) { //eslint-disable-line
if (map[17] && map[112]) {
new sap.ushell.ui.footerbar.AboutButton().firePress(); //eslint-disable-line
map = [];
}
});
},
这允许我使用Control和F1键的组合来请求当前应用程序的信息。