我需要在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