我需要在iPhone上复制bringSubviewToFront的功能:但我在Mac上进行编程。如何才能做到这一点?OS X版本的bringSubviewToFront:?
8
A
回答
6
实际上还没有尝试过这一点 - 有可能是更好的方法来做到这一点 - 但这应该工作:
NSView* superview = [view superview];
[view removeFromSuperview];
[superview addSubview:view];
这将移动“观看”到它的兄弟姐妹的前
0
兄弟姐妹认为重叠可能很难在AppKit中正常工作 - 很长一段时间它完全不受支持。考虑让他们成为CALayers。作为奖励,您可以在iOS版本中重复使用此代码。
0
也一定要启用层石英渲染:
...
NSImageView *anImage = [[NSImageView alloc] initWithFrame:NSRectMake(0,0,512,512)];
[anImageView setWantsLayer:YES];
...
,否则,你的层不能正确渲染。
0
Pete Rossi的答案很有用,但请记住在从超级视图中移除视图时保留视图。
您可以在一个NSView在一个类别补充一点:
-(void)bringSubviewToFront:(NSView*)view
{
[view retain];
[view removeFromSuperview];
[self addSubview:view];
[view release];
}
5
皮特·罗西的回答并没有为我工作,因为我需要用鼠标拖动它时弹出视图到前面。然而,沿着相同的路线以下没有工作而不杀死鼠标:
CALayer* superlayer = [[view layer] superlayer];
[[view layer] removeFromSuperlayer];
[superlayer addSublayer:[view layer]];
此外,下面的放置在一个NSView子类或类别是非常方便的:
- (void) bringToFront {
CALayer* superlayer = [[self layer] superlayer];
[[self layer] removeFromSuperlayer];
[superlayer addSublayer:[self layer]];
}
+0
完美!正是我所需要的,谢谢。 – 2015-03-07 04:49:36
0
这是雨燕3.0的解决方案:
extension NSView {
public func bringToFront() {
let superlayer = self.layer?.superlayer
self.layer?.removeFromSuperlayer()
superlayer?.addSublayer(self.layer!)
}
}
相关问题
- 1. OS X版本可可
- 2. 编译为旧版本的Mac OS X
- 3. Mac OS X上的Xcode版本Lion 10.7.2
- 4. mac os中的gcc版本4.1.2 x
- 5. 获取Mac OS X上的eclipse版本
- 6. Mac OS X中的两个Perl版本?
- 7. Mac OS X版本的Texture2D.m,.h可用?
- 8. Mac Os x和xcode版本的iPod 3.1.3
- 9. OS X上的多个Python版本
- 10. Mac OS X libcurl dylib兼容版本
- 11. Mac OS X带有哪些Java版本?
- 12. 如何获取OS X系统版本?
- 13. PHP 2个diffenrent版本Mac OS X上
- 14. Xcode应用程序版本与Mac OS X版本不兼容
- 15. 在Mac OS X上使用Swift检查OS版本
- 16. 限制哪些OS X版本在OS X App Store中看到应用程序
- 17. 如何找出在较旧的Mac OS X版本上可用的Perl版本?
- 18. 检测服务器上的OS X版本10.4及更低版本
- 19. 在Mac OS X上安装最新版本的MySQL 5.5最新版本
- 20. bringSubviewToFront的对面?
- 21. CALS的bringSubviewToFront
- 22. 我应该升级JAVA版本的Mac OS X的Android开发
- 23. Mac OS X上的Vim和Emacs的首选版本是什么?
- 24. 我的程序目标是哪个版本的OS X?
- 25. OS X上的Python的多个版本Leopard
- 26. 如何正确升级MongoDB的外壳版本的OS X
- 27. 如何在OS X上升级* console *版本的vim?
- 28. “在Mac OS X上使用mod_ssl”文档的当前版本?
- 29. 这个版本的Xcode不能用于OS X服务器
- 30. 如何在OS-X上安装docker的旧版本(1.8.3)?
可能效率低下,但它完成了我想要的,所以谢谢。 – Regan 2010-11-21 16:45:17
改用'setSubviews:'方法可能是值得研究的。 – ArtOfWarfare 2013-08-20 23:15:57