2009-09-16 6 views
0

텍스트 필드 상자가있는 앱을 개발 중입니다. 그래서 텍스트를 입력 할 때 데이터베이스를 검색하고 Google 검색과 같은 제안을 해줘야합니다. 마치 'a'라는 글자를 입력했다면, 글자 'a'로 시작하는 모든 이름을 가진 텍스트 필드 아래에 상자가 있어야합니다. 그리고 나서 'b'문자를 입력하면 상자의 크기를 조정하고 'ab'로 시작하는 이름을 지정해야합니다.코코아 + 내가 사용하는 요소는 무엇입니까?

필자는 텍스트 필드 아래에 테이블보기를 사용하고 텍스트 필드에 새로운 것을 입력 할 때 자체를 다시로드합니다. 하지만 난 제안의 숫자에 따라 테이블보기 크기를 조정하는 방법을 몰라. 이런 종류의 상황에 맞는 다른 요소가 있습니까?

또한 어떻게 새로운 알파벳이나 숫자를 텍스트 필드에 입력했는지 감지하여 그러한 알림이있는 것처럼 제안을 필터링 할 수 있습니까? 내가 말하고자하는 것은 내가 문자 'a'를 입력했다는 것입니다. 그래서 지금 텍스트 필드의 문자열 값은 'a'이고 지금은 'b'라고 입력했습니다. 이제는 문자열 값이 'ab'로 변경되었습니다. 이걸 어떻게 알아 내죠? 나는 textDidChange 알림 나를 위해 이렇게 할 것이라고 생각합니다.

감사

답변

1

당신이 설명처럼 당신은 자동 완성 목록에 대한 NSComboBox를 사용할 수 있습니다. NSComboBox는 NSControl의 하위 클래스이므로 -controlTextDidChange : delegate 메서드를 사용하여 사용자가 입력하는 텍스트의 변경 내용을 감지 할 수 있습니다. Interface Builder에서 컨트롤을 "continuous"로 설정하거나 [comboBox setContinuous : YES]를 호출하십시오.

+0

감사합니다. Rob. 거기에 단추를 숨길 수있는 방법이 있습니까? 끝 부분에 단추가없는 텍스트 필드 만 있으면됩니다. – King

0

어떤 이유로 든 콤보 상자가 상황에 부적합한 경우 컨트롤의 창의 자식 창으로 머리글없는 표보기와 함께 완료 목록을 구현할 수 있습니다. 가능한 완성 횟수가 변경되면 해당 창의 크기를 프로그래밍 방식으로 조정합니다.

+0

감사합니다. 이것은 내가 원하는 것보다 더 소리가납니다. 하위 창을 만들고 정확한 위치 (예 : 텍스트 필드 바로 아래)에 표시하는 방법과 셀 수에 따라 크기를 조정하는 방법을 설명해주세요. – King

+1

올바른 위치를 얻으려면보기의 프레임을 가져온 다음 원점을 내용보기의 좌표 공간으로 변환하고이를 화면 공간으로 변환하십시오. 그것은 귀하의 자녀 창 프레임의 상단 왼쪽 것입니다. 그런 다음 창을 만들고보기 창의 하위 창으로 추가하십시오. –

관련 문제