주 창에 엔티티 목록을 표시하는 간단한 핵심 데이터 앱이 있습니다. 새 엔티티를 만들거나 추가하려면 별도의 관리 객체 컨텍스트가있는 두 번째 모달 창을 사용하여 주 관리 객체 컨텍스트와의 간섭없이 변경 사항을 실행 취소/다시 실행할 수 있습니다.NSUndoManager 및 runModalForWindow :
runModalForWindow:
을 사용하여 편집 창이 시작됩니다. 이 모달 창에서 일련의 개별 변경을 수행하면 단일 실행 취소를 수행하면 모든 변경 사항이 취소됩니다. 을 포함하도록 NSUndoManager
(두 번째 관리되는 개체 컨텍스트에서 얻음)의 실행 루프 모드를 설정해 보았지만 아무런 차이가없는 것처럼 보였습니다.
runModalForWindow:
을 사용하여 창을 시작하지 않고 단순히 makeKeyAndOrderFront:
을 사용하면 모든 것이 예상대로 작동합니다.
이전에이 문제를 겪은 사람이 있습니까? 당신은 당신의 응용 프로그램에 대한 코코아 응용 프로그램 키트를 사용하여 우연히
케빈
두 문맥을 원하는 이유가 명확하지 않습니다. 두 개의 실행 취소 스택을 원하십니까? "한 번 실행 취소 ..."라고 쓰면 원래의 또는 모달 윈도우의 컨텍스트가 실행 취소됩니까? – paulmelnikow