2014-06-09 5 views
5

iOS에서 텍스트 입력을위한 음성 텍스트 옵션에 대한 설명서를 찾지 못하는 것 같습니다. 나는 당신이 AV 제품들로 수동으로 할 수 있다는 것을 알고 있지만, Siri가 활성화되었을 때 얻을 수있는 박스 받아쓰기는 그것에 대한 몇 가지 단점을 가지고 있습니다.UITextField에 대한 받아쓰기 결과가 UITextView와 다릅니다.

시도해보십시오. 검색 창에있는 iOS 앱을 엽니 다. 이것은 우리의 UITextField 실험이 될 것입니다. 더 나은 아직 Mail.app을 엽니 다. 제거 할 수 없으므로 보유하고 있음을 알고 있습니다.

는 내가 무엇을 얻을 "123 느릅 나무 세인트 쉼표 파고 쉼표 ND"말 :.. 123 느릅 나무 세인트 쉼표 파고 콤마 인디 "

내가 말한 정확히 무슨 큰 문제가 오른쪽에 예쁜 닫는 것이였다 텍스트 필드/검색 창은.. UITextView에서 이것을 시도

열고 새 이메일을 수 있습니다, 그리고 전자 메일의 본문에 이동합니다. 같은 말을 할 수 있습니다.

는 "123 느릅 나무 세인트 쉼표 파고 쉼표 ND를 말 " 내가받는 것 : 123 Elm St., Fargo, ND"

로드가 더 좋아 보인다! 그래서 내가 알고 싶은 것은 UITextView가 텍스트 필드보다 구두점과 다른 명령을 더 잘 인식한다는 것입니다. 이것은 쉼표로만 제한되는 것이 아니라 전체 스펙트럼에 걸쳐 적용됩니다.

지시 할 텍스트 유형을 지정하는 방법이 있습니까? 텍스트 필드에서 구두점을 인식하도록 변경하는 방법이 있습니까? 아니면 다른 사람이 내가 왜 다른지 그리고 나는 완전히 망가 졌다고 말하는 어떤 문서를 지적 할 수 있습니까? 어느 쪽이든, 몇 가지 대답이 도움이 될 것입니다. 미리 감사드립니다.

UPDATE 나는의 UITextField를 서브 클래스 다시 받아쓰기에 올 수있는 대체 구문을 확인하지만,이되지 않습니다했습니다. 원래 변환 만 있으면됩니다.

답변

4

@Ricky에서 몇 가지 정보를 좀 더 텍스트 필드 주위를 연주하고, 사용 후, 나는 다시 받아쓰기를 들고 무엇인지 알아 냈어. returnKeyTypeUIReturnKeySearch으로 설정했습니다. 이것을 다른 옵션으로 바꾸면 필자가 원하는 구술 결과를 얻을 수 있습니다. 다시 검색으로 변경하면 결과는 전체 텍스트 결과입니다. 이것은 어디에도 기록되어 있지 않습니다.

이 동작은 어디에도 나와 있지 않습니다. @ 리키 덕분에 제 생각을 조정할 수있었습니다. 설사 100 % 옳은 대답은 아니 었습니다. 그것은 내가이 문제의 최하층에 도달하는 것을 도왔다.

+0

문제 없음 ..;) – Ricky

1

Mail.app의 모든 필드에 대해 테스트를 마쳤습니다.

정확히 당신이 언급 한 것처럼 UISearchBar입니다 내부의 UITextField는, 그것이 전체 단어에 어떤 문장 부호 또는 바로 가기을 대체 - : 여기 내가 찾은 것입니다. 나는 "더블 쉼표"을 말하여 테스트 한 정확히에 언급 된 것처럼

메일 본문에 UITextView ,, 로 보여줍니다., 참조 :, 숨은 참조 :

나는에 에 대한 다른 UITextField에 더 테스트 한

제목 :. 나는 그들이 UITextView처럼 행동한다는 것을 알게되었습니다. 같은 "쉼표"명령 표시,

은 내가 알림 응용 프로그램을 열어 나는 그것이 UITextField 믿고 제목에서 명령을 테스트했다.내가 더 달력 앱 테스트 및 이벤트를 추가하려고

, 같이 "쉼표"명령은 표시합니다. 제목과 위치를 테스트했습니다. 두 사람은 "쉼표"명령은

그래서, 나는 그것이 UITextFieldUITextView의 차이 아니라고 생각 로 표시됩니다. 그러나 Apple 엔지니어가 구두점 또는 바로 가기UISearchBar에 대한 단어로 바꿔서 결정한 것입니다. 우리가 검색 할 때 구두점 또는 바로 가기 단어가별로 의미가 없기 때문이라고 생각합니다. Google은 무언가를 검색 할 때 일반적으로 키워드 만 기억합니다. 따라서 Apple 엔지니어는 가능한 한 많은 단어를 검색하도록 노력하고 있습니다.

위의 청구에 대한 공식 문서를 지금 찾을 수 없습니다. 나는 그것을 발견 할 때 그것을 추가 할 것이다.

+0

받는 사람, 참조 (CC), 숨은 참조 (BCC) 및 제목에 여러 줄의 텍스트를 포함 할 수 있기 때문에 모두 이미 UITextViews인데, 이는 내가 이미 찾은 것에 신뢰감을 부여합니다. 미리 알림 및 캘린더와 동일합니다.나는이 대답이 아직 새로운 것을 찾지 못했다고 생각한다. –

2

나는 이것을 확인하기 위해 테스트 장치를 만들었고 내가 UITextInputTraitsprotocol에 설정 한 값에 따라 다른 받아쓰기 결과를 얻는 것을 발견했습니다. 특히 :

myTextField.autocorrectionType = UITextAutocorrectionTypeYes; // or UITextAutocorrectionTypeNo 
myTextField.spellCheckingType = UITextSpellCheckingTypeYes; // or UITextSpellCheckingTypeNo 

는 UITextField에 대한 받아쓰기의 결과에 영향을 미친다. 의 UITextField와 UITextView 모두에 대한 기본 값은 유의하십시오 그렇게 말씀하지 않습니다

UITextAutocorrectionTypeDefault 
UITextSpellCheckingTypeDefault 

UITextInputTraits documentation을,하지만 난 그게 기본 동작의 UITextField와 UITextView OR (가능성) 사이에서 변화 가능하다 같아요 자동 수정 검색 상자와 같은 특정 필드 또는 앱 개발자가 사용자에게 프리젠 테이션하기 전에 결과를 변경하기로 선택한 경우 (답변에서 @Ricky가 언급 한 경우) 해제되어 있습니다.

iOS7.1에서 테스트하여 UITextField 및 UITextView에서 "쉼표"변환을 ","발생시킬 수 있습니다. 또한 자동 수정 기능이 켜져 있어도 UITextField와 UITextView 모두에 대해 "ND"가 아닌 "Indy"가 발음되는 경우가있었습니다.

UPDATE : 완성도를 위해서

는 아래의 UITextField 및 UITextView 모두 "쉼표"의 변환을 지원하는 작업 테스트 장치는 ""입니다. 자신의 대답에 OP가 암시하는 것처럼 자동 보정 및 맞춤법 검사를 설정하면이 문제를 해결할 필요가 없습니다.

@implementation TestHarnessViewController { 
    UITextField *myTextField; 
    UITextView *myTextView; 
} 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 

    [self.view setBackgroundColor:[UIColor grayColor]]; 

    myTextField = [UITextField new]; 
    [myTextField setFrame:CGRectMake(10, 100, 283, 23)]; 
    myTextField.backgroundColor = [UIColor whiteColor]; 
    [self.view addSubview:myTextField]; 

    myTextView = [UITextView new]; 
    [myTextView setFrame:CGRectMake(10, 200, 283, 100)]; 
    [self.view addSubview:myTextView]; 
} 

- (void)keyboardWillShow:(NSNotification *)note { 
    // 
} 

- (void)keyboardWillHide:(NSNotification *)note { 
    // 
} 


- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string { 
    return TRUE; 
} 

- (BOOL)textFieldShouldReturn:(UITextField *)textField { 
    return [textField resignFirstResponder]; 
} 

- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text 
{ 
    return TRUE; 
} 

@end 
+0

autocorrectionType 및 spellCheckingType이 YES로 설정된 텍스트 필드가 실제 구두점을 반환한다고 말하는 것입니까? 내 설정으로 시도하고 있는데도 여전히 원래 결과를 반환합니다. –

+0

예 - iOS7.1에서 나를 위해 나는 쉼표를 ","로 변환하기 위해 받아쓰기를 UITextField로 가져올 수 있습니다. 나는 몇 시간 안에 기회가 생길 때 불필요한 것들을 제거하고 여기에 테스트 하니스를 게시 할 것이다. 신경 쓰지 마세요 - 받아쓰기가 제대로 작동하는 곳에 자신의 답장을 게시 한 것으로 나타났습니다. – Mike

+0

또한 무슨 일이 일어나고 있는지 테스트하는 데 도움이되었고 텍스트 필드 /보기에서 올바른 결과를 얻는 데 도움이되었습니다. 왜 내 것이 다른지, 그래서 나는 나의 설정을보고 그것에 영향을 미쳤을지도 모른 것들로 땜질하기 시작했다. 도와 주셔서 감사합니다. –