Frage

ich eine NSView haben, in dem der Benutzer Kreise ziehen kann. Diese Kreise sind als ein Array von NSBezierPaths gespeichert und in drawRect :, I-Schleife durch das Array und den Anruf -stroke auf jedem der Pfade. Wie füge ich eine Schaltfläche in die und aus der NSView zu vergrößern? Ändern Sie einfach die Grenzen der Ansicht?

Danke.

War es hilfreich?

Lösung

Senden Sie Ihre Ansicht eine scaleUnitSquareToSize: Nachricht

.

Andere Tipps

Sie können auch diese Informationen bietet:

https://developer.apple.com/library/content /qa/qa1346/_index.html

Der Code in diesem Dokument können Sie eine „Skala“ Eigenschaft auf einen Blick hinzuzufügen.

Die oben genannten Antworten haben nicht funktioniert für mein Szenario aber führten mich zu einer Lösung.

Die aktualisierte Link zu @ Peter Antwort war hilfreich: scaleUnitSquareToSize

Ich habe zwei Soultions gefunden zum Zoomen:

  1. Cropping die Grenzen manuell
  2. Masstab die Grenzen mit scaleUnitSquareToSize

Ich habe ein kleines Testprojekt erstellt. Beide Lösungen können auf meinem GitHub Repo zu finden: BoundsAndFramesCroppingAndScalling

Um zu verstehen, Grenzen vs Rahmen dieses SO Artikel zu lesen: Differenz-zwischen-the-Frame-und-die-Grenzen .

Swift Masstab Code:

let scaleSize = NSSize(width: 0.5, height: 0.5)
// 0.5 - Half the size
// 1.0 - No calling
// 2.0 - double the size , ... etc
myView?.scaleUnitSquare(to: scaleSize)
myView?.needsDisplay = true
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top