추가기능!

NameList에 저장된 이름이 없는데 결정(ResultButton)을 누르면 오류가 나옵니다.
내보낼게 없는데 내 보내라고 이야기 하기 때문이죠. 이런 오류를 바로 잡아 봅시다. 어떻게??
바로! if-else문을 이용하여
만약 NameList에 저장된 이름이 없다면 NameLabel에 “이름을 넣어라” 라고 표시하고
그게 아니면 즉, 이름을 입력하셨다면, 걍 하던 일 계속 하도록 하면 되는겁니다~
이해가 어려우시다면 동영상을 참고하세요.

만약 이름을 안넣고 결정버튼을 눌렀을 때(오류상황)

우선 If-else 블럭의 역할부터 알아 봅시다. 말 그대로 if, else 인데...

(조건)If - NameList 가 비었다면

(조건이 참일 때)Then - NameLabel: ”이름을 입력하시오”

(조건이 거짓일 때)Else - 그렇지 않다면 random 이름, 음식 이미지 출력

아참! if블록은 왼쪽 control 구역에 위치하며 else 블록은 아래 사진과 같이 만들 수 있습니다.

List가 비었는지 확인하는 조건 만들기

List가 비어있는지를 확인할 수 있는 [is list empty] 블록을 사용합니다.
[is list empty]블록은 오른쪽에 조립된 list가 비어있다면 참(true) 뭔가 들어있다면 거짓(false)을 왼쪽에 전달합니다.
[is list empty] 블록NameList와 조립하여 NameList가 비어있다면 참(true) , 비어있지 않다면 거짓(false)반환 (return)하도록 하는 조건을 만듭니다.

여기까지 NameList가 비어있다면 참(true)반환(return)하여 then에 붙어있는 블록들만 실행하고
비어있지 않다면 거짓(false)반환(return)하여 else 옆에 붙어있는 블록들만 실행하는 블록의 기초공사가 끝났습니다.

조건이 참(True)일 때 실행되는 액션 만들기

이제 조건이 True일 때(NameList가 비어있을 때) "이름을 입력하세요"라고 메시지를 띄워보겠습니다.
NameLabel 에 Text를 출력하기 위해 NameLabel 항목에서 [set NameLabel.Text] 블록을 Viewer의 빈공간에 끌어두고 Text항목에서 빈 문자블록 [set NameLabel.Text]블록에 조립합니다.
②, ③ 빈 문자블록에 “이름을 입력하세요”라고 입력합니다.
조립된 두 블록을 If then else블록then옆에 끼워 맞춰 완성합니다.

조건이 False일 때 실행되는 액션 만들기

기존에 만들었던 결과 출력 블록을 else옆에 조립하여 완성합니다.

ResultButton을 클릭하면 결과를 출력해야 하므로 [When ResultButton.Click]블록을 결과 출력 블록과 합칩니다.

이름 입력 후 ‘TextBox’에 남아있는 이름 지우기

이름을 입력하고 저장한 뒤 NameTextBox를 빈칸으로 만들어 봅시다. 여러 번 이름을 추가할 때 편리하겠죠?
방법은 간단합니다. 사용자가 이름을 입력하고 EnterButton을 클릭하면 NameTextBox를 빈칸으로 만들어 입력된 이름을 삭제할 수 있습니다.
화면 왼쪽 blocks 영역에서 NameTextBox를 클릭한 후 [set NameTextBox.Text to]블록을 빈 화면에 드래그해 줍니다. 그런 후 Text를 클릭하여 빈 문자블록을 드래그하여 [set NameTextBox.Text to]블록 옆에 연결시켜 줍니다. 완성된 블록을 [when EnterButton.Click]블록 안에 끼워줍니다.

Enterbutton 누르고, keyboard 숨기기

앞서 1편 원터치 포강냉이에서 이미 자세하게 설명했던 keyboard 숨기기 기능을 다시 한 번 사용해 보겠습니다.
다들 기억하시죠? 기억 못해도 걱정 ㄴㄴ! 다시 찾아보거나 동영상 보시면 해결 될 일!ㅋㅋ
EnterButton을 클릭하면 나오는 블록 중 [call NameTextBox.HideKeyboard]블록을 화면해 드래그 하여
[when EnterButton.Click] 블록 안에 삽입해 주세요.

이제 기능은 완성이 되었습니다. 다음 페이지에서 디자인을 완성해 봅시다~

댓글