Closed gorgeouseowoo closed 1 day ago
1️⃣ 위 화면을 구성하기 위한 학습 키워드 나열
View Controller View Safe Area Text Field Button Label Constraints UIKeyboardType
2️⃣ 해당 화면 구성 시 고려해야 할 엣지 케이스 서술 (ex_ 자릿수 마다 ',' 기입)
숫자 키보드를 사용하는 경우
TextField와 Label 역할 차이로 생긴 오해 😮
화면을 구성할 때 다음과 같은 과정을 생각했어요.
그런데 제가 틀렸다는 것을 발견했어요. TextField에서 입력한 숫자는 Label에 등장하는 거였어요. 즉, TextField에 입력한 숫자가 보여지는 곳이 TextField가 아니라 Label이었던 거죠!
이런 오해가 생긴 이유를 생각해 보면, TextField는 입력 내용을 화면에 보여주고, 입력 중일 때도 사용자가 값을 볼 수 있어서 마치 결과가 표시되는 곳도 TextField라고 느껴졌어요. '입력한 값이 보여지는 곳은 입력 필드'라고 오해한 것이죠.
과정을 수정해 볼게요!
이번 삽질을 통해 TextField는 사용자 입력을 받는 입력 창이고, Label은 입력된 값을 표시하는 출력 창이라고 확실히 이해하게 되었어요. 다음에는 틀리지 않을거에요 😛
📱구현화면
👿 문제발생 텍스트필드에 숫자가 무한정으로 적혀요.. 다들 어떻게 해결하셨나요!?
https://github.com/user-attachments/assets/ac84fbe4-5ccb-486e-82ba-8032011fcf7d
📱구현화면
👿 문제발생 텍스트필드에 숫자가 무한정으로 적혀요.. 다들 어떻게 해결하셨나요!?
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-10-31.at.13.56.35.mp4
저도 비슷한 내용을 다루는 중입니다!!
저는 Int
로 변경하여 NumberFormatter
를 사용하고 있어요! 그래서 입력 값이 Int
의 최대최소 범위에 영향을 받게 됩니당,,
그런데 Swift
의 Int
는 최댓값이 9,223,372,036,854,775,807
이기 때문에,
이 값보다 작은 값까지 입력할 수 있도록, 입력 숫자 길이의 제한을 둘까 고민중이었습니다.
혹은 이 이상의 값이 입력되었을 때, 최대 입력 가능 숫자를 넘어갔다고 알리거나?!?!
📱구현화면
👿 문제발생 텍스트필드에 숫자가 무한정으로 적혀요.. 다들 어떻게 해결하셨나요!?
Simulator.Screen.Recording.-.iPhone.15.Pro.-.2024-10-31.at.13.56.35.mp4
UITextField는 text가 들어올 때 마다 그 input에 맞는 화면을 보여주는 역할을 수행하죠! 그건 UIKit에서 이미 만들어준 기능이에요. 달리 말하면, UITextField는 사용자가 한자 한자 입력할 때 마다 반응하고 있어요! 우리가 그 반응하는 상황에 접근할 수 있다면, UITextField에 보여질 text를 조작할 수도 있을 것 같습니다!
그렇다면 사용자가 텍스트를 한 자 한 자 입력할 때 마다 반응하는 action 메서드가 있을까요? 있을 것이라는 믿음 하에 인스펙터 창을 뒤져보았습니다
오 ! 명칭 상으로는 Editing Change
가 유력해 보이는데요?!
ㅎㅎ 해당 이벤트에서 입력 받은 text가 20(임의)자리를 초과한다면 초과한 자릿수 만큼을 잘라서 textField.text에 직접 먹여줄 수도 있을 것 같아요!
정리하자면,
만약 textField의 input으로 들어오는 값에 output 제한이 생기길 바란다면
UITextField
가 가지고 있는 메서드를 통해 적절한 시점에 보여지는 모습을 변경해줄 수 있지 않을까요?!
티나입니다. git hub remote에 브랜치 생성을 잊지 마세요! git push origin mission/#2-Tina
Done xcode 프로젝트 생성했습니다.