Composite
을 확장하고 Focusable
및 HasFocusHandlers
을 구현하는 사용자 정의 위젯을 구현할 예정입니다.GWT FocusPanel, 탭 키 및 포커스 핸들러
위젯에는 위젯을 초기화하는 데 사용하는 FocusPanel
에 두 개의 위젯이 포함되어 있습니다. 내가 초점 패널에서 Focusable
및 HasFocusHandlers
의 이행을 위임
public CustomBox() {
panel = new VerticalPanel();
...
panel.add(caption);
panel.add(icon);
...
focusPanel = new FocusPanel(panel);
initWidget(focusPanel);
}
, 예를 들면 :
@Override
public void setFocus(boolean focused) {
focusPanel.setFocus(focused);
}
@Override
public void setTabIndex(int index) {
focusPanel.setTabIndex(index);
}
@Override
public HandlerRegistration addFocusHandler(FocusHandler handler) {
return focusPanel.addFocusHandler(handler);
}
그리고 그 후 내가 어떤에서 포커스를 설정 setFocus(true)
을 사용할 수 있습니다 내 생성자는 같이 보입니다 내 개체 및 setTabIndex()
탭 인덱스를 설정할 수 있습니다. Tab 키도 예상대로 작동하지만 문제는 addFocusHandler()
과 함께 추가 된 핸들러의 onFocus()
메서드가 호출되지 않으므로 포커스 이벤트를 처리 할 수 없다는 것입니다.
objets의 스타일을 :focus
CSS 선택자로 변경하기 때문에 초점이 바뀌고 있다는 것을 알고 있습니다.
포커스 핸들러가 호출되지 않는 이유는 무엇입니까?