У меня проблема с реализацией отмены и повтора в моем приложении какао основных данных. Это второй вопрос, который я задаю по той же теме (вы можете прочитать мой первый вопрос здесь), и даже несмотря на то, что я получил дельный совет по моему первому вопросу, я все равно не могу заставить работать отмену и повтор.
В любом случае... вот мой текущий код:
Вот соответствующий код из файла MainWindowController.h:
#import <Cocoa/Cocoa.h>
#import "AppDelegate.h"
@property (nonatomic,strong) NSManagedObjectContext *mObjContext;
@property AppDelegate *appDelegate;
Вот код из файла MainWindowController.m:
#import "MainWindowController.h"
@interface MainWindowController () <NSWindowDelegate>
@end
@implementation MainWindowController
- (void)windowDidLoad {
self.appDelegate = (AppDelegate*)[[NSApplication sharedApplication] delegate];
self.mObjContext = self.appDelegate.managedObjectContext;
[[self window]setDelegate:self];
[self windowWillReturnUndoManager:self.window];
}
- (NSUndoManager *)windowWillReturnUndoManager:(NSWindow *)window
{
return [[self document] undoManager];
}
@end
В моем окне есть следующие выходы в инспекторе соединений: делегат: владелец файла
Меню: ГлавноеМеню
Всякий раз, когда я вношу изменения в записи в своих nstableviews, изменения записываются, но пункты меню отмены и повтора остаются серыми. Я поместил точку останова в windowWillReturnUndoManager, но я не вижу, чтобы там был возвращен какой-либо undoManager... Кто-нибудь может сказать мне, что я делаю неправильно?