Maxscript) editText의 Enter 처리방식[팁]

 

Maxscript의 editText는 싱글라인과 멀티라인으로 글을 쓸 수 있는데요.

싱글라인 설정과 멀티라인 설정을 다른 옵션이 아닌 height값으로 결정이 됩니다.

editText를 처음쓰는게 아닌 자주 쓰던 분들은 editText관련 레퍼런스를 정독까진 안 하기도...

(정독 하신다면 ^^;)

 

-- Enter 후 messageBox 가 출력됨

try (destroyDialog testRollout) catch()
rollout testRollout "Enter"
(
 editText etxt_Enter "Enter :"

 on etxt_Enter entered txt do
 (
  messageBox txt
 )
)
createDialog testRollout

 

-- Enter 후 messageBox 가 출력되지 않음

-- 다른 곳을 클릭하면 messageBox가 출력됨

try (destroyDialog testRollout) catch()
rollout testRollout "Enter"
(
 editText etxt_Enter "Enter :" height:18
 on etxt_Enter entered txt do
 (
  messageBox txt
 )
)
createDialog testRollout

 

두 스크립트를 각각 실행해 보면 잼 있는 현상을 보실 수 있는데요.

아래쪽 코드의 경우 엔터를 치면 글이 사라지는 것처럼 보입니다.

그러다 다른 화면을 선택하면 여러줄의 messageBox 를 확인 할 수 있습니다.

이를 버그라고 생각할 수도 있는데요.

 

사실 아래쪽 스크립트는 멀티라인으로 적용되어서 그렇습니다.

엔터를 치면 라인이 추가되며, entered 이벤트가 정상작동하지 않습니다.

이렇게 싱글라인과 멀티라인의 경계는 height 값 17과 18의 차이에서 오게 됩니다.

(멀티라인을 조금 더 확실하게 확인 하려면 height값을 한 100정도로 올려보세요.)

 

 height 17 이하 : 기본설정17, 싱글라인, entered 이벤트 정상 작동

 height 18 이상 : 멀티라인, entered 이벤트 비 정상 작동

 

editText의 height 값을 변경할 때는 주의 하세요.

Posted by Hwanggoon
,