2009-10-06 5 views
4

에서 점의 비활성화 자동 생성아이폰 SDK : 내 텍스트 필드, 이 비활성화 자동 보정 유형을했습니다 그것은 다른 어떤 자동 보정을 표시하지 않습니다 텍스트 필드 (또는 텍스트 뷰)

(.) 하지만 스페이스 키를 두 번 누르면 자동으로 도트 (.)가 생성됩니다. 예를 들어

, 나는 두 번 "테스트"를 눌러 스페이스 키를 작성하는 경우, 자동으로 변경 "테스트."

사람은이 기능을 해제하는 방법을 알고?

고마워요.

+0

질문에 대한 답변을 했을 설정? – JoePasq

+0

정확히 기능을 사용하지 않도록 설정하지는 않았지만 아래에 게시 한 일종의 해결 방법을 발견했습니다. – elios786

답변

2

자동 수정이 적용된 후 발생하기 때문에 UITextFieldTextDidChangeNotification이 사용됩니다.

  1. 설정 텍스트 필드
  2. 에 대한 대리자는 통지

    다음

    - (void) viewDidLoad {
    ...
    [[NSNotificationCenter defaultCenter] addObserver:self
    selector:@selector(textFieldDidChange:)
    name:UITextFieldTextDidChangeNotification object:tfTitle];
    }

  3. , 통지 핸들러
    - (void)textFieldDidChange:(NSNotification *)aNotification
    {
    if ([textField.text rangeOfString:@". "].length) {
    // Change text
    textField.text = [textField.text stringByReplacingOccurrencesOfString:@". " withString:@" "];
    }
    }

+0

하지만 ""이 아니라 ""을 입력했다고 가정 해 봅시다. 이것이 거기서 문제를 일으키지 않겠는가? – shashank

1

아마 당신은 텍스트 필드 대리자를 연결 한 후 다음과 같은 방법을 구현하는 경우 :

-(BOOL)shouldReplaceCharactersInRange:(NSRange)aRage withString:(NSString *)aString 

당신은 자동 수정 문자열 aString을 확인 할 수 있습니다 ("."어쩌면을 @) 한 후 바로 돌아올 수없는 . 이렇게하면 @ ""을 @ ""로 바꿀 수 없게됩니다. "

+0

안녕 Bisbo, 나는 당신의 제안을 시도한이 방법이 호출 된 후 자동 수정 (간격으로 두 번 탭)이 발생하고, 변경이이 방법을 호출하여 검사하지 않는다는 것을 알게되었습니다. 어쨌든 고마워요. 다른 생각이 있으면 알려주세요. – elios786

+0

아, 이런 생각이 들었습니다 .- –

+1

이중 공백을 확인하면 작동합니다 (http://stackoverflow.com/questions/2576561/iphone-disable-the-double-tap-spacebar). -for-shortcut/3023716 # 3023716 –