Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSStackView中的隐藏视图未隐藏?_Cocoa_Nsstackview - Fatal编程技术网

Cocoa NSStackView中的隐藏视图未隐藏?

Cocoa NSStackView中的隐藏视图未隐藏?,cocoa,nsstackview,Cocoa,Nsstackview,我创建了一个垂直NSStackView,其中包含两个NSView子类(它们只是绘制背景色的NSView)。我将堆栈视图设置为分离隐藏视图。我已将其中一个视图设置为隐藏 这两个视图都不隐藏在堆栈视图中 为了确保我没有发疯,我还设置了两个相同的NSView,彼此相邻,隐藏其中一个。果不其然,一个人确实躲起来了 堆栈视图的分布设置为按比例填充(这似乎无关紧要) 在IB中,行为似乎是正确的;其中一个视图隐藏 我肯定错过了一些非常明显的东西,对吧 如果相关,NSView子类: #导入“ViewWithB

我创建了一个垂直NSStackView,其中包含两个NSView子类(它们只是绘制背景色的NSView)。我将堆栈视图设置为分离隐藏视图。我已将其中一个视图设置为隐藏

这两个视图都不隐藏在堆栈视图中

为了确保我没有发疯,我还设置了两个相同的NSView,彼此相邻,隐藏其中一个。果不其然,一个人确实躲起来了

堆栈视图的分布设置为按比例填充(这似乎无关紧要)

在IB中,行为似乎是正确的;其中一个视图隐藏

我肯定错过了一些非常明显的东西,对吧

如果相关,NSView子类: #导入“ViewWithBackgroundColor.h”


这看起来像是IB和堆栈视图的问题(如果尚未提交错误报告,请提交错误报告)

要解决此问题,您可以:

  • 不要在IB中隐藏按钮,并将其设置为在运行时隐藏

  • 取消选中IB中的“分离隐藏视图”堆栈视图属性(在屏幕截图中可见),并在运行时使用
    -[NSStackView setDetachesHiddenViews:
    进行设置

这似乎是IB和堆栈视图的问题(如果尚未提交错误报告,请提交错误报告)

要解决此问题,您可以:

  • 不要在IB中隐藏按钮,并将其设置为在运行时隐藏

  • 取消选中IB中的“分离隐藏视图”堆栈视图属性(在屏幕截图中可见),并在运行时使用
    -[NSStackView setDetachesHiddenViews:
    进行设置

在代码中设置
隐藏
。有趣的是,如果我使用序列图像板创建一个空白项目,并将相同的视图放在我的视图控制器中,我就不会出现错误(这很奇怪,因为我遇到这个问题的应用程序在序列图像板中)。2019年,Xcode团队仍然没有解决这个问题。在代码中设置
隐藏
。有趣的是,如果我使用序列图像板创建一个空白项目,并将相同的视图放在我的视图控制器中,我就不会出现错误(这很奇怪,因为我遇到这个问题的应用程序在序列图像板中)。2019年,Xcode团队仍然没有解决这个问题。
@implementation ViewWithBackgroundColor

- (void)drawRect:(NSRect)dirtyRect {
    [super drawRect:dirtyRect];
    [self.backgroundColor set];
    [NSBezierPath fillRect:dirtyRect];
    if(self.bottomBorderColor != nil) {
        NSBezierPath *linePath = [[NSBezierPath alloc] init];
        [self.bottomBorderColor set];
        linePath.lineWidth = 2.0;
        [linePath moveToPoint:NSMakePoint(0, 0)];
        [linePath lineToPoint:NSMakePoint(dirtyRect.size.width, 0)];
        [linePath stroke];
    }

}

- (NSColor *) backgroundColor {
    if (_backgroundColor) {
        return _backgroundColor;
    } else {
        return [NSColor clearColor];
    }
}

@end