티스토리 뷰

[ios] 친절한 어플리케이션(2) - Numberpad에 버튼 만들기


안녕하세요. 저번 포스팅에서는 Numberpad 타입의 키보드에서 ,로 숫자를 구분해주는 방법을 알아보았습니다. 


[ios] 친절한 어플리케이션(1) - 입력된 숫자를 콤마로 구분하기


오늘도 역시 Numberpad 타입의 키보드에 친절함을 더해도록 하겠습니다. Numberpad 타입을 이렇게 다루는 이유는 Numberpad는 일반 키보드와는 다르게 여러 한계점이 존재하기 때문입니다. 일반 키보드 타입에는 상황에 따라 done, Search 등의 버튼들을 쉽게 적용할 수 있지만 Numberpad 타입의 키보드에서는 불가능합니다.


오늘은 이렇게 Numberpad 타입의 키보드에 버튼들을 추가하는 방법을 알아보도록 하겠습니다. 그럼 바로 시작해보도록 하겠습니다.


inputAccessoryView

Numberpad 타입의 키보드에 버튼을 추가하는 방법은 두 가지가 있습니다.



위와 같이 빨간색 영역과 파란색 영역에 버튼을 추가할 수 있습니다. 여러분들도 두 가지 경우를 모두 경험해본 적이 있을 겁니다. 빨간 영역에는 위의 사진과 같이 다음 칸으로 넘어가거나 완료를 의미하는 버튼이 위치하고 파란색 영역에는 - . 과 같은 특수 기호를 입력할 수 있는 키보드를 보여줄 때 사용하곤 합니다.


오늘은 빨간 영역에 버튼을 추가하는 방법을 알아볼 것이고 이 영역에 View를 추가하기 위해서는 UITextField 프로퍼티 중 inputAccessoryViewView를 추가해주어야 합니다. 그리고 그 View에 저는 UIToolbar를 사용할 것입니다.



위와 같이 버튼을 생성하고 UITextField에 붙여주면 버튼이 맨 오른쪽이 아닌 왼쪽에 붙어있는 것을 확인할 수 있습니다. 왜냐하면 toolBar.items의 배열에 아이템이 들어가는 순서는 왼쪽부터이기 때문입니다. 오른쪽에 붙여주기 위해서는 다음과 같이 코드를 작성해주면 됩니다.


  • .flexibleSpace 즉 공간을 추가해주어 버튼을 오른쪽으로 밀어버린 것입니다.

Inplementation

이를 활용하여 저는 다음과 같은 예제를 만들어보았습니다.



두 개의 UITextField가 필요하고 각 UITextField에 각기 다른 이름의 버튼과 해당 버튼을 눌렀을 때 서로 다른 액션을 보여줍니다. Next버튼을 누르면 다음 UITextField로 넘어가고 Done버튼을 누르면 입력을 완료하게 됩니다.


먼저 UITextField마다 다른 버튼을 만들어주어야 하기 때문에 addButtonToTextField의 내용이 살짝 수정됬습니다.


  • UITextField의 종류마다 다른 버튼을 만들어 붙여줍니다.

그리고 버튼에 대한 액션 메소드를 만들어주어야 합니다. 버튼마다 액션을 담당하는 메소드를 만드는 것보다 하나의 메소드에서 처리해주는 것이 좋을 것 같아 저는 다음과 같이 만들었습니다.


  • 만일 현재 버튼이 눌렸을 때 입력이 진행되고 있던 UITextFieldphoneTextField라면 identifierTextField로 입력을 넘어가게 하고 identifierTextField가 진행되고 있었다면 입력을 중단하는 코드입니다.

마무리

오늘은 이렇게 간단히 UITextFieldUIToolbar 를 통해 버튼을 추가하는 방법을 알아보았습니다. 다음에는 더욱 도움이 되는 포스팅으로 찾아뵙도록 하겠습니다. 감사합니다!


공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함