gpt4 book ai didi

objective-c - 当 NSTableview 第二次加载其自定义单元 subview 的位置发生变化时如何解决

转载 作者:行者123 更新时间:2023-12-03 17:20:44 25 4
gpt4 key购买 nike

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

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

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

enter image description here

最佳答案

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

enter image description here

并在viewForTableColumn中设置背景颜色,例如:

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

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

我测试了如果我删除 NSView 设置背景颜色代码,就像我上面提到的那样,那么工作完美,无需重新排序和所有东西。我没有使用自动布局。

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

- (void)drawRect:(NSRect)dirtyRect {


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

[super drawRect:dirtyRect];

// Drawing code here.
}

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

关于objective-c - 当 NSTableview 第二次加载其自定义单元 subview 的位置发生变化时如何解决,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29161348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com