티스토리 뷰

iOS

iOS ) Text Input Traits

Zedd0202 2018. 12. 10. 15:54
반응형


안녕하세요 :) Zedd입니다.

다들 주말 잘 보내셨나요.

음 오늘은..Text Input Traits을 살펴보다가..사소한 것들이 있어서 정리해보려고 합니다.

사실 Correction이랑 Spell Checking밖에 안써서..그 외에것들은 잘 모르겠어요ㅋ.ㅋ


Text Input Traits



Text Input Traits하면 엥 그게 몬데요 하시는 분들을 위해..



TextView 또는 TextField를 클릭하면, 오른쪽 Attribute inspector에 이런게 뜹니다.

한번쯤은 보셨을 거에요. :)


일단..우리가 공부하려는게 뭔지 일단 알아봅시다.

UITextInputTraits는 일단 "프로토콜"이네요.

키보드 입력과 관련된 기능을 텍스트 객체에 정의하는 메소드 모음이라고 합니다.


키보드 입력을 지원하는 사용자 정의 텍스트 객체의 경우, 이 프로토콜을 사용하여 Text Input System과 올바르게 상호작용 해야합니다. 

UITextField및 UITextView클래스는 이 프로토콜을 자동으로 지원한다고 해요. 


하나씩 살펴봅시다.


Content Type

흠..이거 많이 사용들 하시나요? 저는 사용을 잘 안해봐서 

누가 나한테 Content Type이 머야? 하면 제대로 설명을 못해줄 것 같은..


일단 Content Type에 모가 있는지 부터 봅시다.


이렇게 많은 것들이 있는데요, 


이름, 회사이름, 주소, 전화번호, 이메일, URL, 신용카드 번호, 비밀번호.....

뭔가 해당 Text Input에 뭘 넣어야 하는지?? 그니까 뭔가 진짜 "Content Type"을 지정해주는 것 같죠?


맞습니다.

Content Type은 Text Input 영역에서 예상되는 "semantic meaning"을 나타낸다고 합니다.

이 프로퍼티를 사용하면, 사용자가 입력하는 내용에 대해 예상되는 semantic meaning에 대한 키보드 및 시스템 정보를 제공한다고 합니다.

기본값은 nil이라고 해요. 


자..이걸 지정하면 거의 아무 변화가 없는 것을 볼 수 있습니다.

한번 여러가지 해보세요..!!!


해보면 바뀌는게 몇몇가지가 있는데 

Name


이렇게 키보드 위에 추천을 해줍니다. 



Full Street Address 

제 신상은 소중하니까요.




Country Name





Telephone Number 


암튼 이런 느낌임.ㅇㅋ??


이렇게 많은데, 여기서 저렇게 추천해주는 것도 있고, 안해주는 것도 많아요! 참고하시길.


다음은 capitalization.


Capitalization

이름에서 볼 수 있듯이, 대문자와 관련된 프로퍼티입니다.

이 프로퍼티는 Shift키가 자동으로 눌려지는 시간을 결정하므로, 입력한 문자를 대문자로 만듭니다. 이 프로퍼티의 기본값은 sentences에요.

일부 키보드 타입은 auto-capitalization을 지원하지 않는다고 합니다. 특히 keyboardType프로퍼티의 값이 numberPad, phonePad, namePhonePad로 설정된 경우, 이 옵션은 무시된다고 합니다. 

대문자로 만들게 없으니까 당연한거겠죠?


선택할 수 있는 옵션은,



이렇게 4가지가 있고, sentences가 기본으로 선택되어있는걸 볼 수 있죠?

none은 대문자화?를 안하겠다는 거고.

word는 각 단어의 첫번째 letter를 대문자로 만들어주겠다는 것.

sentence는 문장.

all characters는 이름에 걸맞게....모두 대문자로 쳐지게 됩니다. 




Correction.

이건 많이들 써보셨을 것 같은데..

말 그대로 자동으로 교정?해주는 프로퍼티입니다. 

스크립트 시스템이 inline autocorrection을 지원하지 않으면, 키보드 input method가 이 상수(constant)를 무시합니다.



보시면, default가 기본값입니다. No랑 Yes가 있는데..Default는 뭐지? 할 수도 있는데, 



설정에 키보드를 가면, 키보드 설정 할 수 있는 부분이 있는데,

여기서 자동수정이 보이시죠? 

저게 off면 내가 autocorrection을 Yes로 해놔도 내가 설정에서 off했기때문에 이 Yes가 무시됩니다.

ㅇㅋ?? 







Smart Dashes


이건 거의..건들일이 없는데..저도 이게 뭔지 몰랐습니다 zz 

말 그대로 Dash. 즉 "-"인데요. 

이것도 



default가 기본이고  No와 Yes가 있네요.

그럼 이것도 스크립트 시스템을 기본적으로 따르나보네요. 

이 프로퍼티는 설정의 "스마트 구두점, 영어로는 Smart Punctuation"의 설정을 기본적으로 따릅니다. 

한번 볼까요? 저는 일단 Default로 해놓고 볼게요 


Smart Dashes가 뭘 하는지 아시겠죠?

Dash를 여러개 입력하면 그걸 하나로 만들어주는?? 그런 기능같아요.

암튼 이것도 autocorrection과 마찬가지로 내 프로퍼티가 Yes든 No든 시스템이 꺼져있으면 무시된다..라는 겁니다.







Smart Insert

흠 이건 뭔지 궁금하시죠?

정의를 간단하게 요약하면, 붙혀넣기를 하면 자동으로 extra spaces가 삽입되거나 잘라내기, 삭제 후에 역시나 extra spaces가 삭제되는지 여부를 지정하기 위한 상수입니다. 

역시나 



Default와 Yes, No가 있네요.

아 근데 이 Default가 뭘 따르는지를 모르겠네요.

설정에 이것저것 껐다가 다시키고 해봐도 안됨...뭔지 아시는 분은 댓글좀.


그냥 이 프로퍼티는 정말 별거 아니구요. 잘 봐야함.

Yes를 봅시다.

 


ㅈㅏ. 잘 보면, 제가 "안녕하세요zedd입니다."에서 .바로 옆에서 붙혀넣기를 했는데도

공백이 하나 더 들어간 후에 붙혀넣기가 되죠? 

이게 바로 Smart Insert입니다.

지울 때도 볼까요? 

앞에 분명 extra space가 있는데 cut을 하면 같이 지워지는게 보이시죠??


이 Smart Dashes를 No로 해볼게요.

extra spaces가 안들어가는거 보이시죠!?


암튼 이런거임ㅇㅇ

사실..이 프로퍼티를 건들 이유ㄷ가 따로 없다고 봅니다. 허허

근데 주의해야 할 점이 있습니다.

앜ㅋㅋ또ㅓ 지금 실험해보니까 또 다르네 

아나 애플 장난하십니까

이걸 Yes를 해놨다고 해서 무조건 extra spaces가 들어가는게 아니라, 구두점? 


일단 한글일때와 영어일때가 다름. 

일단 다같이 움짤로 봅시다.





음 조금 깁니다 40초정도.

일단 이건 제가 실험하다가 발견한거라 뭐 확실하게 이때는 이렇다!! 라고 확신할 수가 없습니다.

참고용으로만 봐주세요.

위 상황은 Smart Insert를 Yes로 해놓은 상황인데요.

한글일때는 마지막에 구두점?이 아니라 그냥

"안녕하새요zedd입니다" (마지막에 "."이 없음) 이 다음에 붙혀넣기를 하면 그냥  extra spaces없이 그냥 붙혀넣기가 됩니다.

하지만 영어일때는  extra spaces가 들어감...


암튼 그러니까 참고하세요.






Smart Quotes

음...이건 진짜 한참 찾았는데...

사실 이게 맞는건지도 모르겠는데....

일단 살펴봅시다.

아니 근데 한글쓰면 솔직히 상관없음....


암튼 일단 봅시다.


이거 역시 Default와 Yes, No로 되어있는데요. 

Default는 설정 > 키보드의 스마트 구두점, 영어로는 Smart Punctuation을 따릅니다.

그럼 차이점 보겠음.


차이점 보이시나요?

뭔가 다릅니다. 폰트(?)가 다릅니다.

아니 폰트가 다르다고 말해도 되는건가?

암튼 Smart Quotes를 사용하면 

'(foot mark)와 "(inch mark)가 따옴표와 아포스트로피로 자동 교체된다고 합니다.


어쩌라고


네....그렇다고 하네요....

영어권 사람들은..미묘하고 세심한 차이가 확 와닿을지도..

저는 아 글쿤.....정도...?...


다음...ㅎ






Spell Checking

말 그대로 맞춤법 검사..?를 사용할지 여부를 결정하는 프로퍼티입니다.

맞춤법 검사가 활성화 된 상태에서, Text object는 맞춤법이 틀린 모든 단어세 빨간색 밑줄을 생성합니다.

사용자가 맞춤법이 틀린 단어를 탭(tap)하는 경우, text object는 사용자에게 가능한 수정 목록을 제공합니다.




역시나 Default.

설정 > 키보드에 "맞춤법검사"라고 있습니다. 기본적으로 이걸 따르게 되어있어요.


뭐 이런거임.








Keyboard Type

이것도 몇번 보셨을거에요.

키보드의 타입임 ㅇㅇ



Default는 현재 input method의 기본 키보드에요. 

여러가지가 있는데... 

ASCII Capable - 한글이 안됩니다..

정의는 표준 ASCII문자를 표시하는 키보드..인데


이렇게 지구모양이 없어짐. 

한글찡...ㅠ


Numbers and Punctuation 

키보드가 올라오자마자 그 특수문자있고 숫자있는 그부분있죠 그부분이 올라옵니다.

다 캡쳐하기 개귀찮음 알아서 보셈


URL 




Number Pad




Phone Pad




Name Phone Pad

왼쪽아래 숫자를 누르면 오른쪽 Phone Pad가 열립니다.





 E-mail Address






Decimal Pad




오 Twitter..!!!!

트위터라고 따로 있네 

대단쓰





Web Search

이동이 눈에 띄죠?



ASCII Capable Number pad

그냥 Number Pad랑 똑같은데...........ㅁㅓ지



자, 이렇게 키보드 타입을 다 봤고, 다음으로 넘어갑시다.





Keyboard Look




이렇게 2개 있는데

Light는 우리가 지금까지 보던거고..

Dark는


이거 ㅇㅇ



Return Key

드디어 마지막이네요..

Return Key........




와 애플 이거 머죠?

이걸 가운데 정렬 안한다고??


애플의 인간미를 엿볼 수 있는;;;;;




뭐 그냥 저 부분만 바뀐다고 생각하시면 될 듯. 



ㅈㅏ..이것만 남았는데

둘다 간단합니다.


Auto-enable Return Key는 기본값은 false인데요.

텍스트 입력 영역에 텍스트가 없을 때 키보드의 return key를 사용할 수 없게 됩니다.

사용자가 텍스트를 입력하자마자 Return key가 자동으로 활성화 됩니다.



텍스트 없으면 이러케됨ㅇㅇ


진짜_최종_으로

Secure Text Entry를 봅시다.

이 프로퍼티는 Text Object가 텍스트 복사를 비활성화 해야하는지 여부와 입력된 텍스트를 숨길지 여부를 식별하는데요.

기본적으로 false입니다.

UITextInputTraits을 준수하는 모든 view에서 이 프로퍼티를 true로 설정하면,

 view에서 Text를 복사 할 수 없습니다. 

UITextField객체에서 이 프로퍼티를 true로 설정하면, 입력한 텍스트가 가려지는, 

비밀번호 스타일 환경이 추가로 활성화 됩니다.


엇 그럼 UITextView에서는 안그렇단 말씀?

ㅇㅇ안그럼. 

UITextField처럼 비밀번호st가 안되고 복사만 안되게 됩니다.

 

UITextField에서는 이렇게 되는걸 볼 수 있음ㅎ



자..이렇게 Text Input Traits들을 한번씩 살펴봤는데요.

보길 잘한 것 같음 ㅋ.ㅋ

연말이라 그런지 엄청나게 바쁘네요.....ㅎㅎ

연말에 무슨 공부겠어요 놉시다 다들

내년부터 화이팅~~




반응형