2013-01-02 4 views
3

, NSSearchFieldNSButton ('추가') 시트를 제공합니다. 내가 원하는 것은 테이블 뷰의 내용을 문자열 목록으로 설정하는 것입니다. 이 문자열 목록은 NSArray목록에입니다. 이 콘텐츠는 검색 필드의 콘텐츠를 기반으로 필터링해야합니다 (의 문자열 목록에) 검색 필드의 콘텐츠가 포함되어 있지 않으면 더 이상 테이블보기에 표시되지 않습니다.NSArrayController를 사용하여 단일 열 NSTableView 필터링

나는 누군가가 나를 도울 수, 바인딩에 익숙하지 않다.

답변

5

나는 친절하게 확인하는 project을 업로드했습니다.

수행하는 방법 거친 아이디어

은 다음과 같습니다

  1. 은 어레이 컨트롤러 만들기 (그러나 이해가 프로젝트를보고하여 쉽다). 어레이 컨트롤러 객체

  2. 세트

    Mode:Class 
    
        Class Name: Your custom Class 
    
  3. 수신 동작

    add: to the button that will add new objects, typically labelled with + 
    
        remove:to the button that will add new objects., typically labelled with - 
    
  4. 참조하는 바인딩 (어느 테이블의 각 컬럼의 테이블 또는 여기에서). 검색 필드에서

  5. Bindings, Predicate to Array Controller 
    
    ControllerKey : filterPredicate 
    
    Predicate Format : <class property> contains $value 
    
    (if to search in multiple table columns then <class property 1> contains $value || <class property 2> contains $value etc….) 
    
+0

위대한 작품! 그냥 질문 : 사용자 지정 클래스없이이 작업을 수행 할 수 있습니까? 인스턴스 변수로 단지 하나의 NSString 만 갖는 전체 클래스를 생성해야한다는 것은 어리석은 일입니다. 지금은 Array 콘트롤러에서'-setContent :'를 사용하고 있지만, 그 값을 테이블 뷰와 나머지 모든 것에 묶는 방법을 모르겠습니다. – Fatso

+0

신경 쓰지 마세요! 이전 코드를 찾았고 열의 값을 바인딩하는 대신 표보기의 내용을 바인딩했습니다. 도와 줘서 고마워! – Fatso

+0

그 이름을 기억하십시오 : 배열 컨트롤러가 아닌 문자열 컨트롤러 ... 나는 당신이 대답을 가지고 있기를 바랍니다 : p –

관련 문제