2010-12-15 2 views
0

내 NSArrayController에 파일 소유자 인 representObject를 가지고있는 tableview의 데이터 소스가되도록 모든 것을 설정했습니다.내 alignedObjects NSArrayController에서 Windows 관리자 공유를 필터링하고 싶습니다

인터페이스 빌더의 내 바인딩 내에서 필터 조건부를 사용하여 $에 이름이있는 arraycontroller의 항목을 필터링합니다. 구체적으로 $로 끝나는 것은 Windows 관리자 공유 모양입니다. 내가 수집하는 FTP 공유의 배열을 얻을 때처럼.

나는 그래서 필터 조건을 설정 한 : 컨트롤러 키 : 선택을 modelKeyPath을 : directorsAndFiles

값 트랜스포머 : 음 나는 잘 모릅니다? 당신은

가 원하는 도움이 될 수 있습니다 그들에

덕분에 $ 문자가있는 모든 항목을 제거!

답변

0

우선이 경우 값 변환기가 필요하지 않습니다. 값 변 환기는 값의 표시를 변경합니다. 예를 들어, 숫자 2는 "€ 2,00"으로 표시 될 수 있습니다. 제목 "형식 문자열을 구문 분석 할 수 없습니다 NOT : 그 문자열을 (약간 수정)를 사용할 때 오류가 발생하는

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name not ENDSWITH '$'"]; 
0

필터 조건자를 "설정"할 때 컨트롤러 키로 설정 한 객체의 유효한 속성으로 키 경로를 설정해야합니다. 따라서 컨트롤러 키를 컨트롤러 객체로 설정하고 키 경로를 일부 속성 (예 : windowsPredicate)으로 설정해야합니다.

그런 다음 바인딩 한 개체에 NSPredicate을 반환하는 windowsPredicate 속성을 추가합니다. (그래서 대략 "$로 끝나지 않는다"로 변환, * 표시는 "아무것도"를 의미한다.)

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name not like '*$'"]; 

이 더 많은 정보를 위해 NSPredicate 설명서를 참조하십시오 : 당신은 같은 것을 사용하여 NSPredicate 직접 만듭니다 . 행운을 빕니다!

+0

: 두 번째

, 당신이 찾고있는 술어 구문에서와 같이"ENDSWITH "입니다 like '* $' " – theprojectabot

+0

NSPredicate * windowsPredicate : 메서드를 내 컨트롤러에 추가 한 다음 인터페이스 빌더에 다음과 같이 연결했습니다. 파일 소유자의 키 패스에 바인딩 : self.windowsPredicate 및 thats 오류가 발생했습니다. – theprojectabot

+0

정확한 세부 정보는 http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/Predicates/에서 확인하십시오. 그러나 제 생각에 작은 따옴표 나 $가 작동하지 않습니다. \ "* $ \"와 (과) "같은 제목을보십시오." – andyvn22

관련 문제