2017-11-10 1 views
0

UITextFiled가 포함 된 페이지와 검색 결과를 표시하는보기를 만들었으므로 검색 조건을 변경하고 싶습니다. 원래 트리거 조건은 textField의 입력 텍스트를 변경하는 것이 었습니다. 나는 사용자가 키보드 autocorrection을 만질 때만 검색이 시작되기를 바란다. 누군가 나에게 약간의 사전을 줄 수 있었습니까, 고마워요! enter image description here네이티브 키보드 자동 취출 문자열 값을 얻는 방법

답변

0

이와 같이 UITextChecker를 구현해보십시오. 마지막 두 줄은 두 가지 유형의 print 문입니다. 하나는 철자가 잘못되었을 때 단어를 추측하고 다른 하나는 사전 단어를 나타내는 단어입니다. arrPredectiveText 배열에는 사전과 같이 순차적으로 단어가 포함됩니다. 당신은 이것으로부터 제안을 얻을 수 있습니다.

입력중인 일부 문자열로 suggestionsForCustomKeyboard 메소드를 호출하십시오.

-(void)suggestionsForCustomKeyboard:(NSString *)word{ 
    if ([currentString length] >= 1) { 

    UITextChecker *textChecker = [[UITextChecker alloc] init]; 
    NSRange misspelledRange = [textChecker 
           rangeOfMisspelledWordInString:currentString 
           range:NSMakeRange(0, [currentString length]) 
           startingAt:0 
           wrap:NO 
           language:@"en_US"]; 


    if (misspelledRange.location != NSNotFound) { 

     guesses = [textChecker guessesForWordRange:misspelledRange 
              inString:currentString 
              language:@"en_US"]; 
     NSLog(@"First guess: %@", [guesses firstObject]); 

    } else { 
     NSLog(@"Textchecker Not found"); 
     autocorrectedText = @""; 
    } 

    if (arrPredectiveText.count >= 2){ 
     suggestionOne = [arrPredectiveText objectAtIndex:0]; 
     suggestionTwo = [arrPredectiveText objectAtIndex:1]; 
    } 
    else if (arrPredectiveText.count == 1 && guesses.count >= 1) { 
     suggestionOne = [arrPredectiveText firstObject]; 
     suggestionTwo = [guesses firstObject]; 
    }else if (arrPredectiveText.count == 0 && guesses.count > 0){ 
     suggestionOne = [guesses firstObject]; 
     if (guesses.count > 1) { 
      suggestionTwo = [guesses objectAtIndex:1]; 
     } 
    } 

    NSLog(@"Textchecker all guess: %@", guesses); 
    NSLog(@"Prediction: %@",arrPredectiveText); 

} 
관련 문제