2017-06-12 6 views
1

Gibt es eine Möglichkeit für ein benutzerdefiniertes NSView, ob es in eine NSScrollView eingebettet ist oder nicht?Benutzerdefiniertes NSView in NSSscrollView eingebettet

Ich erstelle ein benutzerdefiniertes NSView zur Anzeige von Inhalten.
Wenn meine Ansicht in einem Fenster oder einer anderen Ansicht platziert wird, ist ihre Größe festgelegt und der Inhalt wird auf die verfügbare Größe zugeschnitten.
Wenn meine Ansicht in einer NSScrollView platziert wird, muss ihre Größe entsprechend dem Inhalt angepasst werden, damit sie bei Bedarf gescrollt werden kann.
Ich weiß, dass ich ein Mitglied in meiner Ansicht hinzufügen kann, das die NSScrollView angibt, die meine Ansicht hostet und dieses Mitglied manuell in Code einstellt, aber ich frage mich, ob es einen anderen Weg gibt?

Antwort

2

Sie haben die Methoden von NSView nicht überprüft?

@property(readonly, strong) NSScrollView *enclosingScrollView;

oder

var enclosingScrollView: NSScrollView? { get }

Der nächste Vorfahr scroll Ansicht, die die aktuelle Ansicht enthält.

Wenn die aktuelle Ansicht nicht in eine Bildlaufansicht eingebettet ist, ist der Wert dieser Eigenschaft null. Diese Eigenschaft enthält nicht die aktuelle Ansicht, wenn die aktuelle Ansicht selbst eine Bildlaufansicht ist. Es enthält immer eine Vorfahrenansicht.

+0

Um ehrlich zu sein, nein, ich dachte nicht, dass eine solche Eigenschaft existiert. – Surubelnita