• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

NSSplitView Grössenänderung

Poljpocket

Salvatico di Campascio
Registriert
07.01.07
Beiträge
432
Hallo,

ich hab mich durch die ganze Dokumentation des NSSplitViews durchgeschlagen, jedoch nicht auf alle meine Unklarheiten Antworten gefunden. Mir ist schnell klar geworden, dass es für meine Bedürfnisse sicher eine delegate braucht, die das View steuert (sozusagen :D).

Ich möchte ein vertical-Splitview mit einem Divider, der nur in einem gewissen Bereich (min- und maxvalue) bewegt werden kann. Dies muss ich wohl mit einer delegate-Methode steuern, denn im IB gibts keine Parameter, die man entsprechend setzen kann. Weiter hab ich im IB die autoresize-Values so gesetzt, dass sich das SplitView ständig an der Grösse des Fensters anpasst. Dabei ist mir aufgefallen, dass beide Subviews gleichmässig vergrössert werden, wenn man die Breite des Fensters ändert. Ich möchte aber, dass sich nur das rechte Subview mit dem Fenster vergrössert wird und das linke gleich breit bleibt. Das Ganze soll iTunes-like agieren (sieht im Aufbau auch iTunes-like aus!).

Ich weiss nicht, vielleicht ist es am einfachsten, die Sache an einem Beispiel zu zeigen. Hat jemand schon mal sowas gemacht und könnte mir den source der delegate schicken? wäre sehr nett!

Danke und freundliche Grüsse, ppocket
 

Amin Negm-Awad

Süsser Pfaffenapfel
Registriert
01.03.07
Beiträge
665
Erst einmal ist es lobenswert, dass du an ein Delegate denkst.

Ich habe jetzt nicht nachgeprüft, ob das wirklich nicht im IB geht. Hast du auch mal die Min-/Max-Size der Subviews gesetzt? Vielleicht nimmt er darauf Rücksicht. (Daumenregel: Splitviews sind strunzedumm.)

Für die Vergrößerung des Views musst du splitview:resizeSubviewsWithOldSize: implementieren.

Für das Dragging der Divider geht es über
splitView:constrainMaxCoordinate:oops:fSubviewAt:
und
splitView:constrainMinCoordinate:oops:fSubviewAt:
oder
splitView:constrainSplitPosition:oops:fSubviewAt:

Es kann sogar sein, dass die letzten reichen. Daher würde ich damit anfangen.