developer tip

UITextField의 자동 수정 비활성화

copycodes 2020. 11. 29. 11:52
반응형

UITextField의 자동 수정 비활성화


iPhone 응용 프로그램 ( UITextfield) 에서 텍스트를 편집하려고하면 입력 내용이 자동으로 수정됩니다.

이 기능을 비활성화하려면 어떻게해야합니까?


UITextField* f = [[UITextField alloc] init];
f.autocorrectionType = UITextAutocorrectionTypeNo;        

Swift 버전

나는 이것의 Swift 버전을 찾고 여기에 착륙했습니다.

myInput.autocorrectionType = .No

@MaikelS 의 답변도 읽으십시오.

스위프트 3.0

textField.autocorrectionType = .no

UITextInputTraits이를 위해 프로토콜을 사용할 수 있습니다 .

myInput.autoCorrectionType = UITextAutocorrectionTypeNo;

자세한 내용은 여기 를 참조하십시오.


Interface Builder에는이를 비활성화 할 수있는 드롭 다운 필드도 있습니다. 인터페이스 빌더에서 텍스트 필드를 만들 가능성이 높으므로 거기에서 찾아보십시오. 'Correction'옆의 Attributes Inspector에서 찾을 수 있습니다.


스토리 보드에서 '속성 검사기'를 선택하고 '수정'에서 '기본값', '예'및 '아니요'를 선택할 수도 있습니다. 여기에 이미지 설명 입력 여기에 이미지 설명 입력


+ (void)disableAutoCorrectionsForTextfieldsAndTextViewGlobally {
  static dispatch_once_t onceToken;
  dispatch_once(&onceToken, ^{
    struct objc_method_description autocorrectionTypeMethodDescription =
        protocol_getMethodDescription(@protocol(UITextInputTraits),
                                      @selector(autocorrectionType), NO, YES);
    IMP noAutocorrectionTypeIMP_TEXT_FIELD =
        imp_implementationWithBlock(^(UITextField *_self) {
          return UITextAutocorrectionTypeNo;
        });
    IMP noAutocorrectionTypeIMP_TEXT_VIEW =
        imp_implementationWithBlock(^(UITextView *_self) {
          return UITextAutocorrectionTypeNo;
        });
    class_replaceMethod([UITextField class], @selector(autocorrectionType),
                        noAutocorrectionTypeIMP_TEXT_FIELD,
                        autocorrectionTypeMethodDescription.types);
    class_replaceMethod([UITextView class], @selector(autocorrectionType),
                        noAutocorrectionTypeIMP_TEXT_VIEW,
                        autocorrectionTypeMethodDescription.types);
  });
}

참고 URL : https://stackoverflow.com/questions/827310/disable-auto-correction-of-uitextfield

반응형