UITextField 포커스시 입력필드 색상 변경가능한 확장방법

2016-05-05
20 Views

[개발 목표]

입력 텍스트필드에 포커스가 가면 해당 입력필드를 사용중인 것을 표시하기 위해 배경색을 변경하고 다른 쪽으로 포커스가 이동되면 원래 배경색으로 되돌아간다.

1) 우선 프로젝트를 만들고 Single View Controller를 선택한다.

2) 새 Swift파일 UITextFieldExtension.swift를 추가하고 아래와 같이 UITextField를 상속받은 클래스를 만든다.

3) Storyboard에서 ViewController화면에 UITextField 요소를 배치하고 Identity Inspector의 Custom Class에 [UITextFieldExtension]를 지정한다. 텍스트입력박스에는 모두 이렇게 지정한다.

uitextfield1

4) UITextFieldExtension클래스에서 @IBInspectable var focusBackgroundColor: UIColor?라고 선언하였기 때문에 Attribute Inspector에 Focus Background color라는 속성이 나온다. 이 속성에서 포커스가 발생하면 변경되는 배경색을 지정할 수 있다.

uitextfield2

5) Storyboard에서 각 TextField를 Outlet으로 연결해서 뷰와 소스코드간의 연결을 진행한다.

uitextfield3

6) ViewController에 포커스가 발생할 때 배경색이 변경될 수 있도록 각 텍스트필드별 작동코드를 추가한다.

7) 결과는 아래와 같이 나온다.

3BCB64BF-3FF6-427B-A61A-BC5BB2800CD2-83176-000053038CDE89CC

GitHub: https://github.com/swift-kr/TextFieldExam/

 

Facebook Comments

You may be interested

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁
Swift 3.0
shares11 views
Swift 3.0
shares11 views

[Swift3] 폐쇄(Closure)에 대해 살짝 이해할 수 있는 팁

MJ Kim - 4월 29, 2017

몇몇 개발자를 만나 개발을 하다보면, 폐쇄(Closure)에 대해 이해를 하지 못해서 간단하게 바로 이해할 수 있는 팁을 정리해본다. 앱을 개발하다보면 https통신을…

[Swift3] UITextview의 keyboard 닫기
Swift 3.0
shares2 views
Swift 3.0
shares2 views

[Swift3] UITextview의 keyboard 닫기

MJ Kim - 4월 29, 2017

스토리보드에서 델리게이트를 선언하고 class에 UITextViewDelegate를 상속받아서 delegate=self를 viewDidLoad에서 설정하면 간단하게 해결되는데 가끔 헷깔려 하는 경우가 있어 적어본다. [crayon-59053d43b9896533308688/] [crayon-59053d43b989b798532599/] [crayon-59053d43b989d915537405/]…

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈
Swift 3.0
shares5 views
Swift 3.0
shares5 views

스토리보드에서 다국어 지원 및 Xcode 8.3이상에서 이슈

MJ Kim - 4월 29, 2017

다국어 지원은 우선 Localizable.strings파일을 생성한 다음 언어를 지정한다. 그리고 필자가 자주 사용하는 일부 컨트롤들에 대한 확장(extension)을 추가한 다음 스토리보드에서 사용하는…