У меня есть приложение Mac OSX, созданное с помощью xcode 5, которое работает на Mac OSX 10.8. Мое приложение имеет много окон с табличным представлением, и все данные управляются средами coredata через несколько контроллеров NSArray.
Приложение работает правильно.
Я обновил свою систему до mac osx 10.13 и xcode до версии 9. Когда я открыл свой проект в Xcode 9, программа предложила мне несколько предложенных обновлений и множество устаревших методов. Я исправил все это, и теперь приложение работает и на моей новой системе OSX, хотя у меня есть небольшая проблема.
В главном окне есть табличное представление с около 1000 строк. Двойной щелчок по строке открывает новое модальное окно со всеми подробностями выбранного элемента. Модальное окно появляется сразу, но для получения фокуса требуется слишком много времени. Если я закрою это модальное окно, главное окно также займет время, чтобы сфокусироваться.
Это время задержки зависит от количества видимых строк в главном табличном представлении.
В старых версиях osx и xcode проблем с задержкой по времени не было. Кто-нибудь может мне помочь?
UPDATE:
Приложение работает без изменений, но с той же проблемой задержки. В модальном окне есть несколько полей NSText, связанных с другим NSArraycontroller, который выбирает данные из Coredata.
Это код для открытия и закрытия модального окна:
- (IBAction)openModalWindow:(id)sender {
NSArray *result=[arrayControllerSpeaker selectedObjects];
if ([result count]==1) {
[self disattivaMenu];
[scrollViewModalWindow setDocumentView:viewSpeaker];
[self scrollToTop:scrollViewModalWindow];
[undoManager removeAllActions];
[[self managedObjectContext]setUndoManager:undoManager];
[mainWindow beginSheet:modalWindow completionHandler:nil];
} }
- (IBAction)closeModalWindow:(id)sender {
[self saveAction:self];
NSArray *result=[arrayControllerSpeaker selectedObjects];
if ([result count]==1) {
Speaker *speakerSelezionato=[result objectAtIndex:0];
//I made a lot of stuff….
//…..
//…..
[tableViewGrigliaOspiti reloadData];
}
[[self managedObjectContext] processPendingChanges];
[undoManager removeAllActions];
[[self managedObjectContext]setUndoManager:nil];
[sheetInfoMail orderOut:self];
[NSApp endSheet:modalWindow];
[modalWindow orderOut:self];
[self attivaMenu];}
Есть ли какие-нибудь хитрости в инструментах для выявления проблемы? Я не знаю, как его использовать.