NSScrollview Inhalt automatisch nach oben scrollen.

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Wie wäre es mit z. B. (vorausgesetzt, Deine View isFlipped):

    Quellcode

    1. if let documentView = scrollView.documentView {
    2. documentView.scroll(NSPoint(x: 0, y: documentView.bounds.size.height))
    3. }
    Das war übrigens Treffer #1 einer Google-Suche nach "nsscrollview scroll to top"...

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.
  • Nun das habe ich auch gefunden.
    ...............................

    wo und was soll in dem Beispiel der documentView sein?
    Ich habe im InterfaceBuilder ein NSTextField erstellt und dann über Editor - Embed in - ScrollView zu einem Scrollview gemacht. Ich habe nur ein IBOutlet weak var OutPut NSTextField!

    Am Ende war die Antwort eine ganz andere und ein einfache Copy und Paste hat nicht geholfen.


    OutPut.scroll(NSPoint.zero)

    ist hier die Lösung. Ganz einfach. Nicht im Netz gefunden.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von tjost1975 () aus folgendem Grund: Lösung gefunden

  • Wie die erste Code-Zeile zeigt, ist eine documentView die View, welche den Inhalt einer NSScrollView darstellt: Das zu blätternde Objekt, das durch einen Rahmen (contentView) sichtbar ist und über ein Property festgelegt wird. Bei Dir durch das Einbetten im IB eben das Textfeld.

    Und der Punkt oben links einer documentView ist - je nachdem, ob diese View vertikal gespiegelt ist ("flipped") - entweder NSZeroPoint oder eben der von mir genannte Punkt.

    Somit ist der per Google gefundene Ansatz exakt Deine Lösung, etwas Transferleistung vorausgesetzt.

    Aber ich geben Dir vollkommen recht: Solche Probleme löst man nicht mit Copy & Paste. Stattdessen hilft es, die Strukturen und Prinzipien zu verstehen ... z. B. mit der verlinkten Dokumentation.

    Mattes

    P.S.: Ich würde immer stutzig werden, wenn ich auf eine sehr verbreitete Frage scheinbar nichts Hilfreiches im Netz finde: Meistens ist dann ein fehlendes (oder falsches) Verständnis meinerseits das Problem...
    Diese Seite bleibt aus technischen Gründen unbedruckt.

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von MyMattes ()

  • Ich habe die Lösung im Kopf, also das was ich erreichen will erschließt sich mir logisch nur die ganzen Begriffe sind mir a nicht bekannt und die Art zu denken und an die Probleme heranzugehen scheinen ganz anders zu sein als das was man so im Internet als Antwort bekommt.

    Klar scheinbar wurde bei der ersten Antwort die man gefunden hat ein view erstellt mit dem Namen documentview, hab ich ja nicht..... da ist denk problem Nummer eins.
    Sicherlich kann man eine Abfrage mit if machen, muss man aber nicht.

    Ich wollte auch das mein Scroll die Höhe übernimmt des Inhaltes.
    Ich habe mir wieder ein Wolf gesucht und eine extension gefunden. Gut übernommen und ich bekomme den Wert den ich wollte.
    Nun wollte ich den Wert nutzen um die Höhe anzugeben. Ich konnte mich nicht erinnern wie man das machen konnte (hatte ich ja mal erklärt woran das liegt) also im Netz gesucht.
    Set height of NSTextfield - set height of view und und und tausende tolle Sachen gefunden, alles unfassbar kompliziert.
    Nachdem mit CGSize wieder einfiel war es super simpel.

    OutPut.frame.size = CGSize(width: 304, height: heightInt)

    jetzt frage ich mal, warum denken Coder so unfassbar kompliziert wenn die Lösung in einer Zeile zu lösen ist?
  • tjost1975 schrieb:

    jetzt frage ich mal, warum denken Coder so unfassbar kompliziert wenn die Lösung in einer Zeile zu lösen ist?
    Vielleicht, weil ein Programmierer versucht, eine allgemeingültige, robuste Lösung zu finden, die z. B. verschiedene Gerätetypen, Bildschirmgrössen, OS-Updates etc. überlebt. Dann macht es Sinn, den Konzepten der Plattform zu folgen und nicht "quick & dirty" etwas zu schreiben, was gerade in genau diesem Spezialfall funktioniert.

    Ausserdem habe ich den Anspruch, zu verstehen, was ich programmiere ... das es einfach irgendwie funktioniert, reicht mir nicht. Oder anders gesagt, mich interessiert der Weg bzw. das Warum genauso wie das Ergebnis. Daher übernehme ich nur fremden Code, den ich 100% verstanden habe ... das ist eben mein Anspruch an meine Arbeit (bzw. mein Hobby).

    Mattes
    Diese Seite bleibt aus technischen Gründen unbedruckt.