我正在寻找一个最小的可行示例。我一直在谷歌和阅读几天,我找不到最新的单一资源。
我的NSControl工作正常,但只要我添加
+ (Class)cellClass {
return [MYCustomCell class];
}
我得到了这个输出,我的窗口停止正确绘制
<Error>: kCGErrorFailure: CGSShapeWindow
<Error>: kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
_NXPlaceWindow: error setting window shape (1000)
<Error>: kCGErrorFailure: CGSShapeWindow
_NSShapeRoundedWindowWithWeighting: error setting window shape (1000)
我已经阅读了关于这个主题的所有内容(包括Apple文档),但是一切看起来都很模糊,无法实现。如果有人能指出我正确的方向(正确的代码示例或文章),我将非常感激。
答案 0 :(得分:4)
我相信我终于找到了答案。
必须在NSCell / NSActionCell子类中重写-cellSize方法。经过堆栈跟踪后,我发现如果没有覆盖此方法将返回(40000,40000)作为单元格大小,从而产生我们看到的大小调整错误。由于我的NSActionCell子类中有特殊需要,需要单元格占用整个NSControl的绘图区域,所以我只使用了以下内容。
- (NSSize)cellSize {
return self.controlView.bounds.size;
}
希望这有助于你的情况。