샘플 응용 프로그램을 개발하는 동안이 문제가 발생했습니다. 공유하고있는 jsfiddle 링크에는 버튼 클릭시 팝업을 여는 기본 기능이 있습니다. 렌더링 된 함수는 생성하는 동안 한 번만 호출되기 때문에 포인터 모드를 비활성화하고 처음으로 작동합니다. 하지만 언제나 enyo가 포인터 모드를 비활성화하고 개발자가 원하는 구성 요소에 자리 잡는 것이 필요한 이유는 무엇입니까?moon.inputDecorator에 스포트라이트가 없습니다. 렌더링시 포인터 모드를 비활성화하는 동안 "SECOND TIME"
내 요구 사항은 팝업이 대화 상자를 열 때마다 지정한 구성 요소에 스포트라이트가 있어야한다는 것입니다. 팝업 또는 개발자가 지정한 첫 번째 구성 요소 일 수 있습니다. 다른 방법을 알고있을 수는 없으므로 동일하게 접근하십시오. 알려 주시기 바랍니다. 그렇다 초기 초점을하는이 방법에서
http://jsfiddle.net/pL1cawnw/1/
enyo.kind({
name:'app',
kind:'enyo.Control',
components:[
{name:'popupBtn',kind:'moon.Button', content:'Open', ontap:'btnTapped'},
{name:'popupBtn2',kind:'moon.Button', content:'Dummy'},
{name:'inputPopUp', kind: 'inputPop'}
],
btnTapped:function(){
this.$.inputPopUp.show();
},
rendered: function(){
this.inherited(arguments);
enyo.Spotlight.setPointerMode(false);
enyo.Spotlight.spot(this.$.popupBtn);
}
});
enyo.kind({
name:'inputPop',
kind:'enyo.Popup',
center:true,
scrim:true,
floating:true,
components:[
{name:'inputDecorator', spotlight: true, kind:'moon.InputDecorator', style:'width:200px; height: 80px', components:[
{kind:'moon.Input', name:'input', dismissOnEnter:true}
]}
],
create:function(){
this.inherited(arguments);
},
rendered: function(){
this.inherited(arguments);
enyo.Spotlight.setPointerMode(false);
enyo.Spotlight.spot(this.$.inputDecorator);
}
});
new app().renderInto(document.body);
, 동일한 달성의 다른 방법이 여기있다 :
는 jsfiddle 링크입니다?