Я включил версии и автоматически сохранил в своем приложении на основе документов, так что теперь я могу видеть браузер версий (интерфейс, похожий на машину времени) для каждого из моих документов в OSX 10.7
+ (BOOL)autosavesInPlace{ return YES; }
У меня естьтекстовое представление в нем и, как предлагается в одном из видеороликов WWDC, сеанс 107, я хочу отключить ввод текста и т. д. при входе в браузер версий.Поэтому я реализовал методы NSWindowDelegate:
- (void)windowWillEnterVersionBrowser:(NSNotification *)notification{
[myTextView setEditable:NO];
}
- (void)windowWillExitVersionBrowser:(NSNotification *)notification{
[myTextView setEditable:YES];
}
Теперь, myTextView
в окне документа (текущий документ) в левой части экрана отключено, но документы в правой части (вставленные версии)все еще показывает курсор.
TextView не редактируется, но курсор показывает.Я также отключаю другие функции и снова включаю их в описанных выше методах, но написание кода в описанных выше методах, похоже, влияет только на текущее окно документа / документ, а не на окна предыдущих версий / документ.
Возможно, кто-то ещета же проблема?Как я могу получить эту работу правильно?:)
РЕДАКТИРОВАТЬ :
Я искал пример кода WWDC сеанса 107, но папка пуста.Я что-то пропустил или нет примера кода для этого сеанса?
Edit2 :
Замечание по выпуску Application Kit (Lion) говорит, что windowForSheet
вызывается при создании окон правой части браузера версии:
- (NSWindow *)windowForSheet{
CustomWindow *win = (CustomWindow *)[super windowForSheet];
[win setUserInteractionEnabled:![self isInViewingMode]]; //disable stuff here
return win;
}
Но теперь, когда окно возвращается из браузера версии, взаимодействие с пользователем все еще отключено.(