J'essaie d'utiliser l'NSView
appel getRectsBeingDrawn(_:count:)
dans une application Swift, mais ne peut pas imaginer comment décompresser les valeurs 'return' - la signature de la méthode est particulièrement mystérieuse. Je reçois le nombre attendu de rectangles via la variable count
, mais je ne sais pas comment accéder aux rectangles dans le tableau. This question aborde le même problème, et propose une solution, mais cela ne fonctionne pas pour moi - je ne peux pas accéder aux structures NSRect
.L'utilisation de getRectsBeingDrawn: avec Swift
func decideWhatToRedraw() {
let r1 = CGRect(x: 0, y: 0, width: 10, height: 20)
let r2 = CGRect(x: 0, y: 100, width: 35, height: 15)
setNeedsDisplayInRect(r1)
setNeedsDisplayInRect(r2)
}
override func drawRect(dirtyRect: NSRect) {
var rects: UnsafeMutablePointer<UnsafePointer<NSRect>> = UnsafeMutablePointer<UnsafePointer<NSRect>>.alloc(1)
var count: Int = 0
getRectsBeingDrawn(rects, count: &count)
// count -> 2
// But how to get the rects?
}
Ace! - Merci. Je mettrai à jour la question que j'ai référencée pour souligner cette approche beaucoup plus directe (et réussie). –
Swift 4: 'init() est indisponible: utiliser nil literal' – adib