我想在每次显示视图时将焦点设置在输入上。
所以我正在使用这样的事件onAfterRendering
:
onAfterRendering : function(evt) {
var oCtrl = this;
jQuery.sap.delayedCall(500, this, function() {
oCtrl.getView().byId("myInput").focus();
});
},
这很好,但只是第一次。再次显示页面时,焦点未按预期设置。
我需要知道如何在每次调用视图时重点关注。
答案 0 :(得分:2)
onAfterRendering仅在页面重新呈现后才会被调用。但整页重新渲染相对不常见的事件。据我所知,你需要在导航到这条路线时设置焦点。对于这种情况,您应该考虑使用路由的onPatternMatched事件。每次您导航到此路线时都会触发此操作。
我的回答的重点是,你不能只依赖onAfterRendering事件的页面。您应该考虑使用其他更改源。
P.S。在Safari中,focus()不起作用。这是Safari的标准限制。