2010-03-08 1 views
3

UITextField 또는 UITextView를 사용하고 싶습니다. 입력을 할 때 메일 응용 프로그램에 주소를 입력 할 때와 비슷한 내용이 표시되고 대체 단어가 나타납니다. 가능하다면 더 나은 입력 사용자 인터페이스를 얻을 수 있습니다. (완전한 단어 나 주소 또는 전화 번호를 입력 할 필요가 없기 때문에)iPhone에서 자동 완성 구현하기 주소록에있는 연락처에 대해 UITextField

주소록 프레임 워크에서 데이터를 가져 오는 방법과 텍스트를 입력하는 방법도 알고 있습니다. UITextField/UITextView 및 그 대리자하지만 사용자가 입력 할 때 데이터를 가져오고 표시하는 데 사용할 구조의 종류를 알지 못합니다. 이 중요한 경우

나는

은 내가 어떤 도움을받을 수 있기를 바랍니다, 기본 CoreData을 알고있다.

업데이트 (2010/3/10) : 고유 한 GUI를 만들 때 문제가 없지만 알고리즘에 대해 묻습니다. 어떤 종류의 알고리즘이이 알고리즘에 가장 적합한 지 압니다. 어쩌면 이진 나무일까요? 아니면 매회 데이터에서 데이터를 가져와야하나요?

감사

이그나시오

UPDATE (2010년 3월 28일) : 나는 요즘 아주 바빴어요, 그래서 나는 UISearchResults을 시도하지 않은하지만 나에게 좋은 것 같다. 그러나 와인에 대한 답변을 삭제할 필요가 있었는지 궁금합니다. 나는 내 평판이 떨어졌으며이기는 대답을 볼 수 없다고 생각하지 않습니다. ;.. (

사람들은 구축 할 수있는 전체 프로젝트를 필요로하기 때문에이 과잉 Three20 프로젝트 (그것을 구글) 내 요구를 들어

이었다 시사 유지

+0

내가 게시 한 솔루션을 사용해 보셨습니까? ... 더 이상 도움이 필요합니까? –

답변

7

이런 종류의 작업을 수행하기 위해 고급 알고리즘이 필요하지 않습니다 ...주소록을 검색하려면 사용자가 문자를 입력 할 때마다 (또는 자주 검색해야 함) 그렇게 할 수 있습니다. 이를 위해 UISearchDisplayController 클래스를 살펴보십시오. 나는 애플의 TableSearch 샘플 앱을보고 거의 정확한 것을하는 법을 배웠다.

이 앱은 다른 필드 (전체, 기기, 데스크톱, 휴대용)를 사용하여 개체 목록을 검색하여 주소록 필드 (이름, 성, 주소 ...)에 적용 할 수 있습니다. 변경할 필요가있는 것은 주소록 내의 검색뿐입니다. 귀하의 요구 사항이 요구하는 것이 정확히 무엇인지 모르겠지만, 귀하의 요구 사항을 충족시키기 위해 필요한 것이어야합니다. 코드에 문제가 있으면 알려주세요.하지만이 예제가 정말 도움이되었으므로 잘 작동합니다.

+0

와우. 가끔 자동 수락은 어떤 정의도하지 않습니다 (* 대부분의 시간은 괜찮습니다). 나는 현상금을 다시 수여 할 수는 없지만 단순히이 링크 중 하나를 게시 한 "승리"대답을 삭제했습니다. 이런 식으로해서 미안해. –

+1

괜찮습니다. 도와 줘서 고마워. 마크! –

1
내가 얼마 전에 같은 일을 찾고 있었다

뭔가 및 나는 전체 프로젝트를 원하지 않았다 게다가 내가 처음부터 내 자신 만드는 결국 스스로 :

을 시도하는 것이 더 재미 :. 나는있는 UIScrollView의 하위 클래스로 시작

이를 포함 다른 컨트롤. UITextField를 서브 클래 싱하고 여러 줄을 지원하기 위해 "editingRectForBounds"를 재정의했습니다.

[UIColor colorWithRed:0.92 green:0.92 blue:0.92 alpha:1]; 

과 구분 색상 : 연락처가 표시되는 비트의 배경 색상 단지 jQuery과있다가 약간 아래에 침몰 한 것처럼

[UIColor colorWithWhite:0.85 alpha:1]; 

이와 그림자를 사용한다 그것은 본다 UITextField. 커스텀 UIView로 그림자를 만들고, 한번로드하고 필요할 때 숨기지 만, 이미지와 마찬가지로 잘 동작합니다.

마지막으로 필자는 "touchesBegan"을 가로 챌 수있는 사용자 정의 UIView로 파란 알약 모양을 만들어 색상 변경시기를 알 수있었습니다.

을 추가하면 그들이 갈 필요가 어디에 계산하고 사용하는 간단한 문제입니다 도움이

[myTextField addSubview:myBlueView]; 

희망!