2010-03-17 3 views
2

나는 이상하게 생각할 수없는 문제가 있습니다. 저는 Interface Builder에 n00b 정도입니다. 내가 뭘하려고하는지는 단순해야하는 것 같지만 어떤 이유로 작용하지 않는다.데이터 바인딩에 문제가 있고 IB의 공유 NSUserDefaults가 없습니다.

인터페이스 작성기에는 간단한 NSTextField가있는 환경 설정 창이 있습니다. 컨트롤러 키 "값"과 모델 키 "테스트"를 사용하여 공유 사용자 기본값 컨트롤러에 값 바인딩을 설정했습니다. 내 애플 리케이션을 구축/실행하고 환경 설정 창을 열고, 텍스트 필드에 임의의 값을 입력하고 창을 닫는다. 응용 프로그램을 Command-Q합니다. 그런 다음 쉘에서 "기본값 com.xxx.yyy 읽기"를 수행하고 키와 값을 찾을 수 없습니다. 즉, 다음에 응용 프로그램을 실행하고 작동하는 값을 변경하는 것처럼 보이지만 창을 닫기 전에 NSTextField에서 포커스를 전환해야합니다.

NSUserDefaults에 대한 문서에서 공유 컨트롤러가 즉시 값을 저장한다고 말하면서 나는 여기 바보 같은 것을 놓치고 있습니까?

도움 주셔서 감사합니다.

답변

8

나는 다른 사람들이 유용하다고 생각 하느냐고 묻는 질문을 받고 나서 오랫동안 대답하고 있습니다.

바인딩 한 텍스트 필드에 대해 "값을 연속적으로 업데이트"로 설정해야하는 것처럼 들립니다. 그렇지 않으면 값만 전송되므로 환경 설정은 무언가가 발생하여 편집을 '완료'할 때만 업데이트됩니다. 그것은 대개 Return 키를 눌러 트리거되며 아마도 윈도우에서 포커스를 떼어 놓았을 때도 발생합니다 (그러나 필자는이 프로그램을 내 응용 프로그램 중 하나에서 테스트했지만 편집을 커밋하지 않은 것 같습니다).