2

iPhone SDK 3.0을 사용하여 타이핑이 발생하는 것처럼 보이는 (옵션) 완료 옵션이있는 텍스트 입력을 허용하고 싶습니다. 즉, 프리 형식 입력도 허용합니다. 따라서 UISearchBar (텍스트 변경 이벤트가 있음) 및 UISearchDisplayController를 사용하여 옵션을 표시합니다.완료 및 완료 버튼이있는 iPhone 텍스트 입력

문제는 DONE 버튼이 SEARCH가 아닌 완료라고 말하고 싶지만 설정 방법을 찾을 수 없습니다. 분명히 뭔가를 놓치고 있다는 느낌이 들거나 SDK API의 Interface Builder에 설정할 속성이 있습니다.

내가 원하는 결과 (무료 형식 항목, 완료, 완료 버튼)를 얻은 다른 응용 프로그램 (상점에서)을 보았습니다. 아마도 누락 된 대체 접근법이있을 수 있습니다. 모든 포인터에 미리 감사드립니다.

답변

5

월마트의 답변 +1,하지만 안전을, 제대로이 코드를 사용하는 것을 고려 더욱 릴리스의 뷰 계층 구조에서 가능한 변화에 반응하기 :

NSArray *subviews = [<searchBar> subviews] ; 
for(id subview in subviews) { 
    if([subview isKindOfClass:[UITextField class]]) { 
     [(UITextField*)subview setReturnKeyType:UIReturnKeyDone]; 
    } 
} 
0

Odd, UISearchBar는 UITextField 및 UITextView do와 같은 UITextInputTraits 인터페이스를 지원해야합니다 (문서에 나와 있지 않음) 따라서 returnKeyType이어야합니다. 나는 그것을 어떻게해서든지 시도 할 것이다.

그렇지 않은 경우 UISearchBar에서 사용하는 개체 중 하나에이 옵션이있을 수 있습니다.

2

정확히 구현해야만 어디서나 훌륭한 답변을 찾을 수 없었습니다 ... 그래서 나는 약간의 통찰력을 제공 할 것이라고 생각했습니다. 디버거를 밟아보고 UISearchBar를 파헤 치면 꽤 분명합니다. 방금 UISextbar 하위 뷰 내에서 UITextView를 찾는 것을 끝내었고 그 시점에서 핸들을 얻으면 해당 UITextView에 returnkeytype을 설정할 수 있어야합니다.

Psuedocode- UISearchBarObject.SubViewAtIndexOfUITextField.ReturnKeyType = UIReturnKeyType.Done

+1

음을 ... 절름발이 나는 대답을했지만 크레디트를 얻지 못했습니다 ... 사람들은 실제로 코드 스푼을 그대로 그대로 먹어야합니까 ??? –

1

넣고있는 viewDidLoad에서이 코드입니다.

- (void)viewDidLoad { 
... 

NSArray *subviews = [self.searchDisplayController.searchBar subviews] ; 
UITextField *searchField = [subviews objectAtIndex:([subviews count]-2)]; 
[searchField setReturnKeyType:UIReturnKeyDone]; 

... 
}