我有一个使用xcode 5构建的Mac OS X应用程序,该应用程序可以在Mac OS X 10.8上运行。我的应用程序有很多带有表视图的窗口,所有数据都由coredata框架通过几个NSArraycontrollers管理。 该应用程序正常运行。 我已将系统更新为mac osx 10.13,并将xcode更新为版本9。当我在Xcode 9中打开项目时,该程序为我提供了一些建议的升级以及许多不赞成使用的方法。我修复了所有这些问题,尽管我有一个小问题,但该应用程序现在也可以在新的osx系统上运行。 在主窗口中,有一个约有1000行的表格视图。双击一行,将打开一个新的模式窗口,其中包含所选项目的所有详细信息。模态窗口会立即出现,但是要花费太多时间才能获得焦点。如果关闭此模式窗口,则主窗口也需要花费时间来聚焦。 滞后时间根据主表视图中可见行的数量而变化。
使用旧版osx和xcode时,没有滞后时间问题。谁能帮我吗?
更新: 该应用程序无需更改即可运行,但存在相同的滞后问题。在模态窗口中,有几个NSTextfield绑定到另一个从Coredata获取数据的NSArraycontroller。 这是打开和关闭模式窗口的代码:
- (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];}
仪器中是否有任何技巧可以识别问题?我不知道该怎么用。