macos – 使用自动布局的NSClipViewNSScrollView内的NSTableView框架

macos – 使用自动布局的NSClipViewNSScrollView内的NSTableView框架,第1张

概述我正在尝试使用自动布局在代码中的NSScrollView(标准配置)中创建NSTableView.我无法弄清楚如何使这项工作. 这是我的loadView: - (void)loadView{ NSView *view = [[NSView alloc] init]; NSScrollView *tableScroll = [[NSScrollView alloc] init]; 我正在尝试使用自动布局在代码中的NSScrollVIEw(标准配置)中创建NStableVIEw.我无法弄清楚如何使这项工作.

这是我的loadVIEw:

- (voID)loadVIEw{    NSVIEw *vIEw = [[NSVIEw alloc] init];    NSScrollVIEw *tableScroll = [[NSScrollVIEw alloc] init];    NStableVIEw *filetable = [[NStableVIEw alloc] init];    [tableScroll setdocumentVIEw:filetable];    [tableScroll setHasverticalScroller:YES];    [tableScroll setHasHorizontalScroller:NO];    filetable.delegate = self;    filetable.dataSource = self;    [filetable setheaderVIEw:nil];    [filetable setAllowsColumnReordering:NO];    NStableColumn *column = [[NStableColumn alloc] initWithIDentifIEr:@"column1"];    [filetable addtableColumn:column];    [tableScroll setTranslatesautoresizingMaskIntoConstraints:NO];    [filetable setTranslatesautoresizingMaskIntoConstraints:NO];    [vIEw addSubvIEw:tableScroll];    NSDictionary *topVIEws = NSDictionaryOfVariableBindings(tableScroll);    [vIEw addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"V:|[tableScroll]|" options:0 metrics:nil vIEws:topVIEws]];    [vIEw addConstraints:[NSLayoutConstraint constraintsWithVisualFormat:@"|[tableScroll]|" options:0 metrics:nil vIEws:topVIEws]];    self.filetable = filetable;    self.vIEw = vIEw;}

会发生什么是我的表视图的框架将始终等于NSClipVIEw的边界.视图位于窗口内部并随之调整大小,当我这样做时,它将调整滚动视图,剪辑视图和表格的大小,但我永远无法在任何地方滚动.

查看我得到的约束,NSScrollVIEw获取设置剪辑视图以填充它的约束,剪辑视图根本没有约束,并且表视图有一堆与其中的NStableRowVIEws相关的约束.

如果我向剪辑视图添加像| [filetable(> = 500)]这样的约束,我将获得500像素的NStableVIEw,但显然我不想这样做.

解决方法 尽管上面的评论中的海报回答了这个问题,但我认为我已经把答案放在了这里(遇到了同样的问题).如果您采用自动布局,通常会取消选中xib中的“将蒙版转换为约束”.但是,对于像NSScrollVIEw和NStableVIEw这样的类,通常应该让他们通过将translatesautoresizingMaskIntoConstraints属性设置为YES来管理自己的内部视图.设置这些视图外部的约束仍然可以,即相对于其超级视图调整大小.

如果将translatesautoresizingMaskIntoConstraints设置为NO,那么您将需要为所有内部视图提供约束,除非您特别需要自定义行为(几乎从不),否则您将不希望这样做.这是上面的具体问题.

没有正确设置的一个明显的副作用是,表(例如)将无法正确滚动超出视图中可见的内容.

总结

以上是内存溢出为你收集整理的macos – 使用自动布局的NSClipView / NSScrollView内的NSTableView框架全部内容,希望文章能够帮你解决macos – 使用自动布局的NSClipView / NSScrollView内的NSTableView框架所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1009296.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存