OS X版本的bringSubviewToFront:?

Reg*_*an 9 macos cocoa objective-c

我需要在iPhone上复制bringSubviewToFront的功能:但是我在Mac上编程.如何才能做到这一点?

Pet*_*ssi 7

实际上还没有尝试过 - 而且可能有更好的方法 - 但这应该有效:

NSView* superview = [view superview];  
[view removeFromSuperview];  
[superview addSubview:view];  
Run Code Online (Sandbox Code Playgroud)

这将把"观点"移到其兄弟姐妹的前面


aep*_*yus 6

Pete Rossi的回答对我不起作用,因为当用鼠标拖动时我需要将视图弹出到前面.但是,沿着相同的路线,以下操作可以在不杀死鼠标的情况下工作:

CALayer* superlayer = [[view layer] superlayer];
[[view layer] removeFromSuperlayer];
[superlayer addSublayer:[view layer]];
Run Code Online (Sandbox Code Playgroud)

此外,以下放在NSView子类或类别中非常方便:

- (void) bringToFront {
    CALayer* superlayer = [[self layer] superlayer];
    [[self layer] removeFromSuperlayer];
    [superlayer addSublayer:[self layer]];
}
Run Code Online (Sandbox Code Playgroud)