2009-12-12 3 views
0

NSArrayController의 내용이 내 AppDelegate의 "servers"속성입니다. NSArrayController의 내용에 추가되는 항목에 대한 응답으로 작업을 수행하려면 어떻게해야합니까?

은 내가 NSArrayController의 " selection.name"속성에 바인딩 된 NSTextField을 가지고 있고 나는 " add:"및 NSArrayController의 " remove:"행동에 부착 된 버튼이있다.

"추가"버튼을 클릭하면 NSTextField이 첫 번째 응답자가되어 사용자가 즉시 서버 이름을 편집 할 수 있습니다.

나의 현재 전략은 NSArrayController의 "arrangedObjects"속성을 관찰하는 것입니다하지만 난 다시 NSKeyValueChangeKindKey에서 벗어나 모두가 NSKeyValueChangeSetting 열거입니다. 텍스트 필드가 첫 번째 응답자가되도록 요청할 수 있도록 NSKeyValueChangeInsertion 값을 얻으려고했습니다.

제 질문은 올바른 방향으로 가고 있습니까? 아니면 이것을 수행하는 일반적인 방법이 있습니까? 나는 바인딩을 잘 연결하고 있습니다, 나는 방금 내 자신의 행동을 균열에 삽입하는 방법에 어려움을 겪고 있습니다.

답변

1

NSArrayController의 하위 클래스를 텍스트 필드의 콘센트로 만듭니다. add: 메서드를 재정의하십시오. 구현시 즉시 super까지 메시지를 보낸 다음 텍스트 필드를 첫 번째 응답자로 지정합니다.

+0

도움 주셔서 감사합니다. 어떤 이유로, 나는 makeSirstResponder : 메시지를 performSelector : withObject : afterDelay : (super를 호출 한 후)와 함께 보내야 만했다. –

+0

- [NSArrayController add :]가 내부적으로 작업을 지연시키기 때문에 지연이 필요할 수 있습니다. –

관련 문제