Game Develop

[UE5] 디테일패널 커스텀할 때 사소한 주의사항 본문

UnrealEngine5/이것저것

[UE5] 디테일패널 커스텀할 때 사소한 주의사항

MaxLevel 2025. 10. 16. 08:01

 

디테일패널을 따로 커스텀하고 싶을 경우.. 아래처럼 행을 추가하곤 한다.

 

enumCategory.AddCustomRow(FText::FromString("EnumClassName"))
   .NameContent()
   [
       SNew(STextBlock).Text(FText::FromString("EnumClassName"))
   ]
   .ValueContent()
   [
       SNew(SEditableTextBox)
       .Text(this, &DetailCustomization_SetFSMServiceNode::GetEnumClassName)
       .OnTextCommitted(this, &DetailCustomization_SetFSMServiceNode::OnEnumClassNameCommitted)
   ];

 

여기서 맨 아랫줄에 보면 OnTextComitted에다가 텍스트 커밋이 발생했을 때 호출시킬 함수를 바인딩하면 되는데 

나 같은 경우, OnEnumClassNameCommitted가 바인딩 되어있다.

 

이 때 

 

 

이렇게 입력하고 엔터를 누르면 내가 바인딩 한 함수가 호출되는데 로그를 찍어보니 두번이 호출되고 있었다.

 

알아보고 나니 두번호출되는 이유는 다음과 같더랜다..

 

1. ETextCommit::OnEnter   (엔터키를 눌렀을 때)

2. ETextCommit::OnUserMovedFocus (포커스가 다른 위젯으로 이동할 때)

 

엔터키를 누르면 자동으로 포커스가 해제되서 2번이 호출되서 그렇단다...

사실 두번 호출되도 지금은 상관없긴 한데, 어떻게 될지 모르니 글로 저장해놓는다.