2014-12-08 2 views
1

UITextField을 구성하는 것이 더 많은 일을한다고 생각합니다. 현재 작업중인 App에는 텍스트 필드 수가 적습니다.상위 레벨/의미 론적 UITextField 설정

  • 전자 메일 입력 - 전자 메일 입력이 정확하지 않으며 전자 메일 키보드를 사용합니다.
  • 암호 입력 - 결코 수정하지 않고 표준 키보드를 사용하여 입력을 모호하게합니다.
  • 제목 텍스트 - 수정하고, 표준 키보드를 사용하고, 첫 글자를 대문자로합니다.
  • 다른 텍스트 - 표준 키보드를 사용하고 문장의 첫 글자를 대문자로 바꿉니다.

... 그게 대부분입니다.

그래서, 대신 :

[self.txfPassword setSecureTextEntry: YES]; 
[self.txfPassword setAutocorrectionType: UITextAutocorrectionTypeNo]; 
[self.txfPassword setAutocapitalizationType: UITextAutocapitalizationTypeNone]; 
[self.txfPassword setSpellCheckingType: UITextSpellCheckingTypeNo]; 
[self.txfPassword setKeyboardType: UIKeyboardTypeDefault]; 

내가하고 싶은 :

[self.txfPassword setPurpose: UITextFieldPurposePassword]; 

는 않습니다, 또는 일 내장의 어떤 종류가 있습니까 나는 나는 될 것 내 자신 굴리기? 또한 수

  • 아이폰 OS가 나는 이메일 주소, 말, 함께 일하고 있어요보고,이 주소록에서 이메일을 삽입하기 위해 제공하는 것, 그리고 :

    이상적으로,이 그래서 내장 될 것이다 올바른 유효성 검사도 수행하십시오.

  • 또는 트위터 핸들/FB 신원이 내 친구를 검색 한 다음 다른 공개 된 신원을 검색 할 수 있습니다.
  • 비밀번호를 사용하고 있다면 임의의 문자열을 생성하고 키 체인에서 그것을 치도록 제안 할 것입니다.
  • 아니면 전화 번호가 있다면, 그것은 주소록에있는 것을 찾아 볼 수 등

감사합니다. 쉽게 이런 종류의 범주를 만들 수

+0

확실하게'UITextField'에 카테고리 나 서브 클래스를 사용해야합니다. 숨겨진 기능을 수행 할 수있는 더 많은 도우미 클래스는 텍스트 입력이있을 때만 표시되도록하는 결과를 반환합니다. – Kampai

+0

* nods * 그게 내가 기대하는 것과 비슷하다. - 어느 정도는 내장되어 있지 않거나 잘 수행되는 것으로 알려진 라이브러리가 없다는 사실에 조금 비틀 거렸다. – Benjohn

+1

나는 지금까지 어떤 사람은 수영을하기를 바란다. – Kampai

답변

2

...

// .h 
typedef NS_ENUM(NSUInteger, TextFieldPurpose) { 
    TextFieldPurposePassword, 
    TextFieldPurposeEmail, 
    TextFieldPurposeBlah, 
}; 

@interface UITextField (Purpose) 

- (void)setPurpose:(TextFieldPurpose)purpose; 

@end 

// .m 
@implementation UITextField (Purpose) 

- (void)setPurpose:(TextFieldPurpose)purpose 
{ 
    switch(purpose) { 
     case TextFieldPurposePassword: 
      [self setPasswordPurpose]; 
      break; 
     case TextFieldPurposeEmail: 
      [self setEmailPurpose]; 
      break; 
     case TextFieldPurposeBlah: 
      // set some other purpose 
      break; 
    } 
} 

- (void)setEmailPurpose 
{ 
    // do your email set up here... 
} 

- (void)setPasswordPurpose 
{ 
    [self setSecureTextEntry: YES]; 
    [self setAutocorrectionType: UITextAutocorrectionTypeNo]; 
    [self setAutocapitalizationType: UITextAutocapitalizationTypeNone]; 
    [self setSpellCheckingType: UITextSpellCheckingTypeNo]; 
    [self setKeyboardType: UIKeyboardTypeDefault]; 
} 

@end 

지금 대신 텍스트 필드에 모든 설정을하는 당신은 ... #import UITextField+Purpose.h" 다음에이

[self.txfPassword setPurpose:TextFieldPurposePassword]; 
+0

히야. 답변 감사합니다.나는 당신에게 upvote를 주었지만 다른 제안이 나오는지 알고 싶습니다. (특히 내가 원했던 몇 가지 추가 점을 제공하는 라이브러리의 경우) 잠깐 동안 열어 두었습니다. 질문의 초기 요구 사항에 대해서 카테고리는 좋은 해결책입니다. 필자는 텍스트 필드 집합 (올바른 반환 키 동작 등)에 대한 관리자를 구현하고 결국 의미 체계 설정 및 사용 의미에 기반한 유효성 검사도 제공합니다. – Benjohn