2012-05-24 3 views
2

나는 소스와 함께 NSComboBox이 있고 삼각형 클릭하고 클릭하여 항목 중 하나를 선택하면 완벽하게 작동합니다. 그러나 사용자가 자동 ​​완성을 사용하여 이름을 선택하기 위해 입력 할 수 있도록하려는 경우도 있습니다. 현재, 사용자가 입력 할 때 자동 완성을 선택할 항목을 선택하지만 선택하지는 않습니다.NSComboBox 위임

내 생각에 사용자가 콤보 상자와 선택 항목 이름에 자동 완성을 입력 할 때 콤보 상자를두고 메서드를 실행하여 팝업에서 같은 이름의 항목을 선택하도록 위임 메서드를 구현해야한다고 생각했습니다. 업리스트. 나는 다음과 같은 컴파일러 오류받은, 그러나

- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor { 

    NSString *tempString = [outletPerformanceVenue stringValue]; 

    NSLog(@"New Value = %@",tempString); 

    [outletPerformanceVenue selectItemWithObjectValue:tempString]; 

    return TRUE; 
} 

:

나는이 위임 방법을 구현

*** -[NSComboBoxCell selectItemWithObjectValue:] should not be called when usesDataSource is set to YES 

꽤 곧장 앞으로 보인다,하지만 나에게 가장 좋은 것이 무엇인지 ... 궁금 잎 항목을 선택하는 방법? 이 이름을 포함하는 데이터 소스 배열의 레코드 색인을 결정하고 같은 색인을 사용하여 콤보 상자 항목을 선택해야합니까? 아니면 직접적인 방법이 있습니까?

* 편집 *

은 간단보다 직접적으로 질문 할 수 있습니다

만약 사용자 유형 (오히려 풀다운 목록에서 선택보다는)에있는 항목의 이름으로 콤보 상자 데이터 소스를 사용할 때 콤보 상자에서 해당 항목의 인덱스를 검색하려면 어떻게합니까?

https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ComboBox/Tasks/SettingComboBoxValue.html

+0

혹시 이것을 알아 낸 행운이 있었나요? – Kyle

답변

3

짧은 답변 : 다음 selectItemAtIndex 방법을 사용하거나 setStringValue: 전화 여기에 당 ... 내부 또는 외부 데이터 소스로 작업해야합니다

가 부상으로 모욕을 추가하려면, 애플의 문서는 selectItemWithObjectValue가 말한다 (NSComboBox는 NSTextField에서 상속받습니다).

그리고 단지 완전성에 대해

: 나는 때문에 관련하지만 약간 다른 문제로 여기에왔다.

나는 어떻게 나의 콤보 박스를 구축했는지 설명 할 것이다. 나는 이것이 당신의 상황에 적용되는지 모르겠지만 그것이 누군가를 도울 수 있기를 바라고 있습니다.

나는 완료 작업을하지만, 바인딩은 실제로 값을 설정하는 작업을 할 수 있도록 데이터 소스 방법을 구현했습니다. 그런 식으로 return 키를 누르면 항목이 옵션 중 하나로 자동 완성되거나 사용할 수있는 자동 완성이없는 경우 새 값이 만들어집니다. 바인딩은 값 설정 및 설정을 처리합니다.