NSDndocManager와 함께 NSDocument를 사용하고 있습니다. 나는를 UndoManager에 취소 작업을 밀어 때 NSDocument updateChangeCount 설정이 지연의 발견 : 문서가이 호출되기 전에 수정되지 않은 경우NSDocument isDocumentEdited를 NSUndoManager로 상태를 푸시 한 직후에 YES로 설정하는 방법
[undoManager registerUndoWithTarget:self selector:@selector(applyUndoState:) object:state];
NSLog(@"Document.isEdited: %d", [self isDocumentEdited]);
이 "0"이 표시됩니다가. 이 메소드가 종료 된 후 undomanager가 updateChangeCount를 나중에 호출하는 것으로 보입니다. 언변관이 문서 updateChangeCount를 강제 업데이트 할 수 있습니까? 내가 수동으로
if (![self isDocumentEdited])
[self updateChangeCount:NSChangeDone];
부를 수 있지만이를 UndoManager과의 상호 작용에서 안전 할 것인지 모르겠어요.
왜 지금 바로 문서의 편집 상태가 필요합니까? – Volker
사용자가 탐색기 트리 뷰를 클릭 할 때 모덜리스 편집기에서 변경 내용을 커밋하기를 원하기 때문입니다. runloop이 다음 이벤트로 진행하기 전에이 호출 직후에 문서를 저장해야합니다. 내가 언급 한 주위에 작업을 추가하고, 그것은 잘 작동하는 것 같습니다. –