2014-03-02 3 views
0

나는 데이터가 NSArrayController의 하위 클래스에 의해 제공되는 뷰 기반 NSTableView를가집니다. 배열 컨트롤러는 또한 업데이트를 지시하는 다른 객체로부터 NSNotifications (단지 2)를받습니다. 어레이 컨트롤러가 NSTableView의 위임자 역할을하지 않는 한 모든 것이 예상대로 작동하고 각 알림은 한 번만 수신됩니다. 배열 컨트롤러를 NSTableView (IB)의 델리게이트로 연결하면 이러한 동일한 알림이 여러 번 (수백 개처럼) 수신됩니다. 배열 컨트롤러는 awakeFromNib에서 이러한 알림을 위해 한 번만 등록됩니다.NSTableViewDelegate 여러 NSNotifications를 수신

답변

0

후세를 위해서.

참고 : 소유자 : makeViewWithIdentifier를 호출가로 awakeFromNib이 앱에서 여러 번 호출되도록 애플의 'Mac 용 테이블보기 프로그래밍 가이드'에서

이 작은 덩어리이다. 이것은 makeViewWithIdentifier : owner :가 전달 된 소유자와 함께 NIB를로드하고 소유자가 이미 깨어 있더라도 awakeFromNib 호출을 수신하기 때문입니다.

위임자로 연결할 때 내 클래스 'awakeFromNib :가 모든 보이는 NSTableView 셀에 대해 호출되어 알림 관찰자가 매번 등록됩니다.

2

알림 및 대표단은 코코아의 두 가지 독립적 인 메커니즘입니다.

첨부 된 참석자가 수신중인 알림의 수/종류를 변경해서는 안되기 때문에 코드에 다른 내용이 있어야합니다.

+0

감사합니다. Jay. 그것이 내가 당황한 것입니다. 이전 버전에서 아름답게 작동했지만 지금은 손상된 코드입니다. 유일한 실질적인 변화는 셀 기반에서 뷰 기반 NSTableView입니다. 나는 파기를 계속할 것이다. – Joel