2016-06-11 12 views
0

Ich versuche, eine NSSsplitView ähnlich wie Xcode zu implementieren, wo Sie eine Ansicht reduzieren können, indem Sie den Griff auf unter die Hälfte seiner Breite ziehen, und es wird automatisch minimiert. Ich habe diesen Teil funktioniert, aber ich muss den Status einer Schaltfläche in der Symbolleiste aktualisieren, wenn dies passiert. Ich habe versucht, splitViewDidResizeSubviews zu hören und zu überprüfen, ob die Ansicht der SplitView reduziert ist, aber diese Methode feuert 16 mal mit collapsed == true, also glaube ich nicht, dass ich den Zustand der Schaltfläche 16 Mal aktualisieren möchte. Gibt es einen saubereren Weg, dies zu tun? Ich bin neu in Cocoa, aber von dem, was ich gesehen habe, würde ich erwarten, dass es eine Möglichkeit gibt, den Zustand dieser Schaltfläche an die isCollapsed-Eigenschaft zu binden und damit fertig zu werden. Gibt es so etwas?NSSsplitView Collapse Event

+0

Eine geteilte Ansicht kann viele reduzierbare Teilansichten enthalten, so dass NSSplitView keine 'isCollapsed'-Eigenschaft besitzt. – Willeke

Antwort

0

Der beste Weg, um zu sehen, welche Bindungen vorhanden sind, ist die Dokumentation zu überprüfen, insbesondere die Cocoa Bindings Reference (Blick in die Sidebar für die Ansicht Sie nach).

enter image description here

NSSplitView nicht die Bindung Sie beschreiben, so dass ich denke, Sie mit Ihrem aktuellen Ansatz auf dem richtigen Weg sind. Natürlich müssen Sie nicht aktualisieren der Zustand der Schaltfläche 16-mal, nur überprüfen Sie es ist jedes Mal, und aktualisieren Sie es, wenn es erforderlich ist. Es mag ein wenig verschwenderisch erscheinen, aber den Wert eines Bool zu überprüfen ist eine sehr billige Operation, und Sie werden keinen Leistungseinbruch bemerken.