0

私は CoreData / NSPersistentDoc アプリを持っています。それは正常に動作します。

MOM に新しいエンティティを追加し、バージョンを更新しました。

ここで、MOC 内にそのエンティティの新しいインスタンスを作成すると、アプリに既に存在する古いエンティティのインスタンスを作成するまで/作成しない限り、[保存] メニュー項目は無効のままになります。

ドキュメントが変更されたことを示すために、タイトルバーの赤いドット ボタンが正しく黒くなりますが、OS X / NSDocument はこれを認識しません。保存することはできません。

何か案は?

4

1 に答える 1

0

原因/解決策を見つけました-それは私自身のバグでしたが、この回答は同様の問題を抱えている他の人に役立つかもしれません.

私は、(validateMenuItem を実装することによって) コピー/貼り付けメニュー項目を有効にし、適切なタイミングでコピー アンド ペーストに対して true/false を返すための Apple の公式アプローチを使用していました。

そして、私はそれ以外のすべての NSPersistentDocument の実装を返していました (これには、保存が含まれていましたが、それはわかりませんでした)。

次に、新しい NSManagedObject を追加したときに、サブビューとサブビューコントローラーを追加し、validateMenuItem をこれに委任しました。つまり、独自のコピー/貼り付けステータスを処理できるようにしました。

...しかし、「コピーペーストではなく、子によって処理されず、NSPersistenDocument サブクラスによって処理されない場合...それを NSPersistentDocument に渡して決定する」ためのコードパスがありませんでした...

...そのため、[保存] メニュー項目が有効になることはありませんでした。

于 2011-07-03T12:39:19.123 に答える