2010-11-21 2 views
0

하나의 속성이 NSDate 유형의 transactionDate 인 트랜잭션으로 이름 지정된 클래스가 있습니다.바인딩을 통해 두 개의 텍스트 필드에있는 테이블보기의 두 행의 날짜 표시

NSArrayController를 사용하여 테이블 뷰에 트랜잭션 목록을 표시하고 있습니다.

내가 "받는 사람" 로 표시 텍스트 필드의 마지막 행에서 "보낸 사람"과 날짜로 표시된 텍스트 필드에 첫 번째 행에 날짜를 표시 할 IS-

내 요구 사항.

은 -

내 질문에 나는 IB에 바인딩을 통해이를 달성 할 수 있습니까? 그렇다면 어떻게됩니까?

감사합니다,

Miraaj

답변

1

예,이 작업을 수행 할 수 있습니다 (예 : @min 및 @max array operators).

다음은이의 매우 간단한 버전을 수행하는 방법은 다음과 같습니다

  1. 오픈 인터페이스 빌더 - 자동으로 내용을 준비하도록 설정, NSArrayController를 추가 새 응용 프로그램
  2. 을 만들 수 있습니다. 다음과 같이
  3. "name""age"
  4. 추가 두 개의 열 레이블을하는 버튼 ("+"를 표시)과 두 개의 레이블 (maxval로 변경 이름, minval)
  5. 와이어까지 NSArrayController 바인딩을 테이블을 추가 :

alt text

다음은 실행중인 응용 프로그램입니다 (인터페이스 빌더 "시뮬레이트"모드에서만). 그것을 사용하려면 +를 클릭 한 다음 테이블의 맨 위 행을 클릭하고 첫 번째 열에 이름을 입력하고 두 번째 열에 나이를 입력하십시오. 그런 다음 몇 명 더 반복합니다.

alt text

이 모두는 조금 비밀 보이지만, 충분하다. 내 버전에서 명확성을 위해 "Max Age"와 "Min Age"레이블을 추가했습니다.

0

불행하게도이 바인딩이에 특히 좋은 것이 아닙니다. 당신은 그것을 얻을 수 있지만 그것은 매우 해킹 될 것입니다.

NSTableViewDataSource 프로토콜은 여전히 ​​테이블에 데이터를 제공하는 데 완벽하게 적절하고 유효한 방법입니다. 이와 같은 경우 (테이블에 균일 한 데이터의 직선 바닐라 세트를 제공하는 것만은 아님) 데이터 소스 프로토콜이 문제를 해결할 정상적인 방법입니다. 이렇게하면 표가 표시되는 것을 완벽하게 제어 할 수 있습니다.

코어 데이터를 사용하는 경우 데이터 소스 클래스는 변경 사항에 대한 관리 객체 컨텍스트를 관찰하고 데이터를 다시로드해야합니다 (전체 테이블을 새로 고치려면 -reloadData를 사용하거나 -reloadDataForRowIndexes : columnIndexes : 체리로 새로 고침 할 행을 선택하십시오.

관련 문제