1

我正在使用 NSSplitview,其中上半部分是 NSTableView,下半部分是带有 2 个项目的 NSTabview。每个 NStabViewItem 都有一个 NSTextview。所有都在 nib 文件中定义。

现在在选择 NSTableview 行时,我加载文件内容并将其设置在 NSTabViewItem 的 NSTextview 上。所以我加载的 NSTabview 项目取决于选择了哪些 NSTableView 行。

但是,我观察到 5-6 秒的明显延迟,以查看 NSTabView 的 NSTabViewItem 的 NSTextview 上可见的文本。但是,如果我将鼠标悬停在 NSTabView 区域中,则立即显示 NSTabview 的 NSTabViewItem 的 NSTextview 的内容。谁能指导我这是什么问题?

我只使用 NSTableView 委托,而不是 tabview 委托。我只是在 tabview 的每个 NSTabViewItem 的相应 NSTextView 中加载内容。

代码片段:

 - (void)tableViewSelectionDidChange:(NSNotification *)notification
    {
        if ([mTableView selectedRow] != -1)
        {
            selectedNode = [mLogContainer objectAtIndex:[mTableView selectedRow]];
            [self manageTabView:[selectedNode logfile]];

        }
    }

-(void) manageTabView:(NSString*) fname
{
    [self loadTextView:mDetailView withFilePath:fname];
    NSString* summaryFile = [NSString stringWithFormat:@"%@.summary",fname];
    [self loadTextView:mSummaryView withFilePath:summaryFile];
    [mTabView selectTabViewItemAtIndex:0];

}


-(void) setContent:(NSString*) content forView:(NSTextView*) textView
{
    NSString* fileContent = [[NSString alloc] init];    
    [fileContent stringWithContentsOfFile:content 
          encoding:NSUTF8StringEncoding error:nil];
    NSTextStorage *textStorage = [textView textStorage];
    [textStorage beginEditing];
    [[textStorage mutableString] setString:fileContent];
    [textStorage endEditing];
    [textView setNeedsDisplay:YES];
} 
4

1 回答 1

0

这听起来多么愚蠢,但这种奇怪行为的问题是NStextview笔尖框架中的 比NSTabviewItem视图大一点。不知道这种行为的原因是什么,但是当我重新调整大小时NSTextView.. 一切正常。

于 2013-08-05T13:45:53.453 回答