#021 Cheddar: Drag and Drop (53:09 Minuten)

#021 Cheddar: Drag and Drop
In dieser Folge kümmern wir uns darum, unseren TableView per Drag & Drop umsortieren zu können. Apple hat das Vorgehen und die Methoden für Drag & Drop generalisiert. Egal ob man also im Finder Dateien verschiebt, ein Bild aus einem Programm auf ein zweites Programm fallen lässt oder eben die Zeilen eines TableViews umsortiert - technisch ist das immer das Gleiche.
Ihr benötigt in dieser Folge nahezu das gesammelte Wissen aus unseren bisherigen Folgen. Schaut euch im Zweifelsfall mindestens die unten aufgeführten Links an!

Solltet ihr das Projekt unter 10.5 nachprogrammieren: Denkt weiterhin bitte daran, dass einige Protokolleangaben nicht funktionieren und Apple in 10.6 einige Datentypen bei den Methoden ausgetauscht hat; hauptsächlich int gegen NSInteger! Wenn ihr das beachtet, bzw. entsprechend modifiziert, dann wird alles laufen!

Wenn ihr diese Revision zukünftig aus dem SVN-Repository auschecken wollt, dann könnt ihr im Terminal folgenden Befehl eingeben:

Links zu dieser Folge:
  • Retain, Relese und Autorelease
  • Operatoren
  • #020 Cheddar: NSUserDefaults
    Trackbacks:
    http://www.mac-talk.eu/entwickler/71-videotutorials-zu-objective-c.html
    7 Kommentare | Permalink | Trackback-Info | Film in HD ansehen!

  • Anzeige / Partnerlink

    Kommentar hinzufügen

     
    Name:
    Email (optional):
    Text:
    Sicherheitscode:
    Bitte geben Sie hier die unten abgebildete 5-stellige Zahl aus dem Bild ein!
    Um die 1 besser von der 7 unterscheiden zu können, hat die 1 unten immer einen waagerechten Strich.

    7. am 7. Dec 2009, 00:17 Uhr

    Kleiner Tipp für die englische Aussprache:
    Archive wird nicht "Artschief" ausgesprochen, sondern "Arkeif" ;)
    Aber das ist wohl Meckern auf hohem Niveau ;)

    Ansonsten natürlich wieder Lob für diese Folge. Drag & Drop wurde sehr gut vermittelt.

    6. Unbedeutender Kommentator am 6. Dec 2009, 22:08 Uhr

    @ingo
    Nein, die Methoden haben sich bereits in 10.5 geändert. Cocoa ist seit 10.5 auch in 64 Bit verfügbar.

    Übrigens, schon mal im Interface Builder mit gedrückter Shift- und Ctrl-Taste auf ein UI-Element geklickt? ;)

    5. McPringle am 6. Dec 2009, 17:45 Uhr

    Kleiner Bug in der neuen Version: Erstellt mal einige SyncItems, z.B. 10 und markiert davon drei, die ihr ziemlich an den Anfang verschiebt. Dann auf "Löschen" klicken: Plötzlich sind drei andere SyncItems markiert, die nun an deren Stelle sind. Korrekter Weise müsste nach dem Löschen die Markierung aufgehoben werden. Dazu die Methode "pushRemoveSyncItem" einfach um folgenden Befehl ergänzen:

    [syncItemTable selectRowIndexes:nil byExtendingSelection:NO];

    Zumindest würde ich als Anwender dieses Verhalten erwarten. Sonst war es auch diesmal wieder – bis auf ein paar Versprecher – eine tolle Folge! Wenn ich am Sonntag Nachmittag plötzlich verschwinde, meint meine Frau jetzt nur noch: "Kuckst du schon wieder null null?" ;)

    McPringle

    4. ingo am 6. Dec 2009, 17:41 Uhr

    Richtig, der Datentyp wurde schon eher eingeführt.
    In 10.6 ändern sich dadurch jedoch noch Methoden, die vorher int benutzt haben, z.b. die TableViewDatasource Delegate-Methoden.

    3. Unbedeutender Kommentator am 6. Dec 2009, 17:33 Uhr

    NSInteger wurde bereits mit 10.5 eingeführt. Daher braucht man das unter 10.5 nicht ändern.

    2. peter am 6. Dec 2009, 16:21 Uhr

    @spTim:

    Du kannst das auch über eine Konstante lösen - es spricht nichts dagegen. Ich persönlich nutze das #define aus banalem Grunde lieber: Durch Code-Highlighting erscheint das im Quellcode in einer anderen Farbe als normale Variablen/Konstanten ...

    Peter

    1. spTim am 6. Dec 2009, 16:02 Uhr

    Hi,

    wieso benutzt Ihr für euren SyncItemTableViewDataType nicht ein

    NSString* const SyncItemTableViewDataType=@"de.0x02100.cheddar.SyncItemTableViewDataType";

    statt des

    #define SyncItemTableViewDataType @"de.0x02100.cheddar.SyncItemTableViewDataType"

    . BTW: das was man mit #define definiert nennt man macro bzw. preprocessor macro.

    Gruesse aus Berlin,
    spTim