我有一个使用Autolayout的Cocoa项目,我想在NSPathControl
上放一个按钮(实际上是一个NSScrollView
),这样即使当scrollView是一个按钮时,它仍然保持在屏幕上的相同位置滚动。
每当我将按钮添加到scrollView的父级时,它都会在scrollView后面结束(即使我明确地使用addSubview:positioned:relativeTo:
。如何让它在scrollView上方浮动?
我的后备是将它放在scrollView中,打开translatesAutoresizingMaskIntoConstraints
并在滚动scrollView时更新帧。如果可能的话,我更倾向于使用autolayout ......
编辑:这是按钮的布局代码(scrollView中内容的布局非常复杂):
NSButton *button = [[NSButton alloc]initWithFrame:NSZeroRect];
button.translatesAutoresizingMaskIntoConstraints = NO;
button.wantsLayer = YES;//Added incase this affects ordering (it doesn't seem to make a difference)
[self.superview addSubview:button positioned:NSWindowAbove relativeTo:self];
[self.superview addConstraint:[NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeLeft multiplier:1.0 constant:20]];
[self.superview addConstraint:[NSLayoutConstraint constraintWithItem:button attribute:NSLayoutAttributeTop relatedBy:NSLayoutRelationEqual toItem:self attribute:NSLayoutAttributeTop multiplier:1.0 constant:20]];
答案 0 :(得分:1)
通过在scrollView本身上将wantsLayer设置为YES来解决。