NSRulerView超越NSTableView?

时间:2014-09-26 18:36:19

标签: nstableview nsscrollview osx-yosemite

非常基本的情景:

我的笔尖里有一个NSTableView,指向它的插座。我在我的app delegate中有以下内容:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application
    NSScrollView    *scroller = [tableView enclosingScrollView];

    [scroller setHasVerticalRuler: YES];
    [scroller setRulersVisible: YES];
}

标尺显示在我的表格标题的上方(任何任何内容):

Tableview with ruler overtop

了解第1列仅部分可见。如果我用textview尝试相同的东西,那么它工作得很完美,光标缩进,文字清晰可见:

Textview proper

有人能指出我做错了吗?

编辑:我发现这是Yosemite的一个问题,在旧的OS X版本中不存在。我已经提交了错误报告,但我想现在的问题是,是否有人知道解决方法?

示例项目已uploaded here

1 个答案:

答案 0 :(得分:1)

问题出在NSScrollView中,这不是你的错。基本上,column1部分可见的原因是因为水平滚动条有一个偏移量。

无论如何,这对我有用:

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
    // Insert code here to initialize your application
    NSScrollView    *scroller = [tableView enclosingScrollView];

    [scroller setHasVerticalRuler: YES];
    [scroller setRulersVisible: YES];

    NSPoint pointToScrollTo = NSMakePoint ( -25 , 0 );
    [[scroller contentView] scrollToPoint: pointToScrollTo];
    [scroller reflectScrolledClipView: [scroller contentView]];
}

希望这会有所帮助。