1

我是可可 OSX 应用程序的新手,可能这个问题很简单,但我尽我所能找出这个问题,最后我在这里提出问题。

我正在创建NSWindowViewController并在其中NSTableview与 Customcell 一起使用。在 customeCell 中,我使用了 NSView (customView) 并将所有 Cell IBOutlet 放在 NSView 一侧。当第一次NSWindowViewController加载显示正常但关闭窗口后我再次打开它。它的NSTextFieldIBOutlet 将其位置从单元格的顶部更改为底部。

我试图找到一些属性更改但没有修复它我附上了它的屏幕示例我的可可osx应用程序发生了什么。

在此处输入图像描述

4

1 回答 1

0

我注意到当我使用以下代码从属性 Inspector 设置 NSview 的背景颜色时会发生这种情况,我设置 NSView Core 动画之类的。

在此处输入图像描述

并将背景颜色设置为viewForTableColumn

cellView.bgview.layer.backgroundColor = [NSColor whiteColor].CGColor;

当我重新加载顶部标签到底部的表格视图时,颜色设置正确并且一切正常,并且将显示单元格的反转 UI 顺序,正如我在我的问题中显示的那样。

我测试了我是否删除了上面提到的 NSView 设置背景颜色代码,然后工作完美,无需重新订购和所有事情。我没有使用自动布局。

所以之后我创建了 NSview 的自定义子类来设置颜色,如下所示:

- (void)drawRect:(NSRect)dirtyRect {


    [[NSColor whiteColor] setFill];
    NSRectFill(dirtyRect);

    [super drawRect:dirtyRect];

    // Drawing code here.
}

NSView我删除了我的旧代码,并通过创建子类和我的问题修复来使用这个设置背景。

于 2015-05-13T11:59:13.357 回答