NSScrollView mit Inhalt füllen

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

  • NSScrollView mit Inhalt füllen

    In einer App für OSX möchte ich einen ScrollView mit Text füllen. Ich habe dazu einen TextView im Interface Builder auf meine Maske gezogen und ein Outlet erstellt:

    Quellcode

    1. @IBOutlet var scrollViewOutlet : NSScrollView


    Bei meiner Suche habe ich nur Hinweise auf die Entwicklung mit iOS gefunden; dort muss man den UIScrollView mit einem UILabel füllen.

    Es gibt im Gegenzug bei OSX allerdings kein NSLabel, weshalb ich mein Glück mit einem TextField versuchen wollte (Ist das überhaupt der richtige Ansatz?). Leider erfolglos.

    Quellcode

    1. var textView : NSTextField
    2. textView.objectValue = "Test"
    3. scrollViewOutlet.addSubview(textView)


    Der Compliler meckert in der zweiten Zeile "variable 'textView' used before initialized", wobei ich eigentlich dachte, dass in Zeile 1 gemacht zu haben(?).

    Bin dankbar für jede Hilfe, damit ich den ScrollView in Betrieb nehmen kann :)

    Viele Grüße
  • Mhh, alles leider nicht so einfach.
    Ich habe einen TextView ins Storyboard gezogen.
    [Blockierte Grafik: http://img4web.com/i/LX95C.png]

    Man bekommt dann einen TextView in einem ClipView der in einem "Bordered Scroll View" ist ?(

    [Blockierte Grafik: http://img4web.com/i/AVLWLQ.png]

    Allein wenn ich vom TextView ein Outlet erstelle und die App dann versuche zu starten, erhalte ich eine Fehlermeldung.

    cannot form weak reference to instance (0x618000120820) of class NSTextView. It is possible that this object was over-released, or is in the process of deallocation.
  • Um sicher zu gehen habe ich in Xcode gerade ein neues OSX-Projekt erstellt und nichts weiter gemacht außer: Den Text View (wie oben beschrieben) eingefügt und ein Outlet mit "Strong" erstellt. Das sieht wie folgt aus und wurde von Xcode nach dem Drag&Drop automatisch erstellt (ist da evtl. aufgrund der Beta noch was falsch?):

    Quellcode

    1. @IBOutlet var textViewOutlet : NSTextView = nil


    Ich erhalte auch in diesem Falle wieder die Fehlermeldung
    Cannot form weak reference to instance (0x618000120500) of class NSTextView. It is possible that this object was over-released, or is in the process of deallocation.

    Nach wie vor kann ich mir nicht vorstellen, dass sich das Erstellen eines TextFields als derart schwierig gestaltet. Ich wäre daher dankbar für jede Hilfe, da ich seit Tagen leider nicht weiterkomme. ||
  • In Xcode 6 beta 6 sieht das Outlet nun wie folgt aus:

    Quellcode

    1. @IBOutlet var textViewOutlet: NSTextView!

    Es gibt auch keine Fehler mehr beim Kompilieren.

    Nach wie vor möchte ich meinen NSScrollView über einen NSTextView mit einem String füllen; wie weiter oben beschrieben. Gelöst habe ich es mit:

    Quellcode

    1. textView.textStorage.mutableString.setString("")

    Ist das ein valider & performanter Weg?

    Edit: Außerdem würde mich interessieren, wie ich im NSTextView zusätzlich NSMutableAttributedString anzeigen lassen kann.

    Quellcode

    1. textViewOutlet.textStorage.setAttributedString(attributedString)


    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von mrtn.lxo ()