iPhone'da bringSubviewToFront işlevini çoğaltmam gerekiyor, ancak Mac'te programlama yapıyorum. Bu nasıl yapılabilir?OS X sürümü, bringSubviewToFront :?
cevap
aslında bu dışarı denemedim - ve bunu yapmak için daha iyi yollar var olabilir - ama bu çalışması gerekir:
NSView* superview = [view superview];
[view removeFromSuperview];
[superview addSubview:view];
Bu onun kardeşleri önüne 'görünümü' hareket edecek
Üst üste binen kardeş görünümleri, AppKit'te doğru bir şekilde çalışmak için zor olabilir - uzun bir süre boyunca tamamen desteklenmedi. Onları yerine CALayers yapmayı düşünün. Bonus olarak, bu kodu iOS sürümünüzde yeniden kullanabilirsiniz.
da kuvars oluşturma için katmanı sağlamak için emin olun:
...
NSImageView *anImage = [[NSImageView alloc] initWithFrame:NSRectMake(0,0,512,512)];
[anImageView setWantsLayer:YES];
...
aksi takdirde katman doğru getirilmesi mümkün değildir.
Pete Rossi'nin cevabı işe yarıyor, ancak görüntüyü süper görüntüden kaldırdığınızda görünümü korumayı unutmayın.
Sen NSView bir kategoride bu ekleyebilirsiniz: Ben fare ile sürükleyerek zaman öne doğru görüşü pop gerekiyordu çünkü
-(void)bringSubviewToFront:(NSView*)view
{
[view retain];
[view removeFromSuperview];
[self addSubview:view];
[view release];
}
Pete Rossi'nin cevabı benim için çalışmadı. Ancak, aynı doğrultuda şu fareyi öldürmeden çalışma yaptı: Ayrıca
CALayer* superlayer = [[view layer] superlayer];
[[view layer] removeFromSuperlayer];
[superlayer addSublayer:[view layer]];
, bir NSView alt sınıfta veya kategoriye yerleştirilen aşağıdaki oldukça kullanışlıdır:
- (void) bringToFront {
CALayer* superlayer = [[self layer] superlayer];
[[self layer] removeFromSuperlayer];
[superlayer addSublayer:[self layer]];
}
Mükemmel! İhtiyacım olan şey, teşekkürler. –
Bu Swift 3.0 çözümdür:
extension NSView {
public func bringToFront() {
let superlayer = self.layer?.superlayer
self.layer?.removeFromSuperlayer()
superlayer?.addSublayer(self.layer!)
}
}
- 1. WKWebView (OS X) yazdırma içeriği (OS X)
- 2. OS X
- 3. OS X
- 4. OS X
- 5. OS X
- 6. OS X
- 7. OS X
- 8. OS X
- 9. OS X
- 10. OS X
- 11. OS X 10.6.8'de varsayılan Python sürümü terminalde nasıl ayarlanır?
- 12. OS X desteği :: tr1
- 13. Mac OS X
- 14. Mercurial OS X eklentisi
- 15. Hata Mcrypt OS X
- 16. Mac OS X
- 17. Hala Mac OS X
- 18. Dylibs ve OS X
- 19. Mac OS X
- 20. Kuvvet - Mac OS X
- 21. OS X uygulamasını dmg
- 22. OS X getiri "in
- 23. Ruby: OS X
- 24. Mac OS X
- 25. Mathematica, Mac OS X
- 26. OS X clang -pthread
- 27. Mac os x
- 28. Mac OS X
- 29. Emacs, OS X
- 30. OS X Mavericks Chrome'daki Push Bildirimleri
Muhtemelen verimsiz, ancak istediğimi gerçekleştirir, teşekkürler. – Regan
Bunun yerine 'setSubviews:' yöntemini kullanarak araştırmaya değer olabilir. – ArtOfWarfare