[Unity/Android] InputField 와 친해지기 (part. 1)

/// <summary>

/// Unity - Android) InputField 와 친해지기 (part. 1)

/// @author         : Incentive Code

/// @last update  : 2023. 06. 30

/// @version        : 1.0

/// @update

///     v1.0 (2023. 06. 30) : 최초 작성. 

/// </summary>


Unity 에서 모바일 UI 를 개발하다 보면 유난히 InputField 가 아쉽게 느껴질 때가 많습니다.

개인적으로 가장 큰 문제라고 느꼈던 부분은

작성할 것을 다 쓰고, Soft Keyboard 를 닫기 위해서 하단의 ' V ' 키를 누르면

모든 내용이 사라지는 것 이라고 생각합니다.  


multi line editing 을 하다보면 '완료' 버튼이 없어서 v 버튼을 누르게 되는데
그걸 누르면, 모든 내용이 사라진답니다...




저는 이 문제를 InputField 에 event listener 를 추가해서 해결했습니다.

InputField 를 터치할 때 발생하는 onSelect() 에서는 현재 입력된 값이 있는지 확인합니다.

값이 변경될 때 발생하는 onValueChanged() 에서는 string 변수에 변경되는 값을 저장합니다.

입력이 끝나고 Soft keyboard 의 상태가 변화될 때 발생하는 onTouchScreenKeyboardStatusChanged() 에서는 Soft keyboard 의 상태를 확인합니다.

마지막으로 InputField 의 사용이 끝날 때 발생하는 onDeselect() 에서 Soft keyboard 가 취소 상태라면 가장 마지막에 변경된 값을 InputField 에 입력합니다.

이걸 코드로 풀어내면 이렇게 사용할 수 있습니다.

이제 InputField 를 추가할 때 마다 SetInputFieldListener() 를 한 번 호출해주면

위의 문제가 해결됩니다.



event listener 를 추가한 영상과 함께 이번 글을 마무리 하도록 하겠습니다.



혹시 제가 틀렸거나, 더 좋은 방법을 알고 계시는 분이 있다면 댓글에 의견 남겨주세요.

의견 반영해서 다시 업데이트 하도록 하겠습니다.


긴 글 읽어주셔서 감사합니다.

다음에 더 좋은 글 가지고 오겠습니다.

Incentive Code

여전히. 예술하는 프로그래머, 코딩하는 예술가

댓글 쓰기

다음 이전