Coredata和NSTableview-Mac OSX系统更新后打开模式窗口时延迟焦点

时间:2018-11-08 19:31:37

标签: macos core-data nstableview lag

我有一个使用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];}

仪器中是否有任何技巧可以识别问题?我不知道该怎么用。

0 个答案:

没有答案