RubyCocoa + NSTableView != Kärlek

Tråden skapades och har fått 3 svar. Det senaste inlägget skrevs .
1
  • Medlem
  • Stockholm
  • 2008-01-16 01:55

Problemet är nu löst, bifogar en kort beskriving på lösningen ifall det finns andra som stött på samma problem.

-----------------------------------------------

Har nu spenderat några timmar, vid två-tre olika tillfällen, i fullständigt misslyckade försök att förstå mig på NSTableView.

Jag har glott i ändlöst många tutorials, både för Objective-C och RubyCocoa specifikt, men fortfarande inte kommit någonstans.

Jag har outlets på rätt ställen, och knappen (se nedan) kopplad till rätt funktion.

Jag försöker göra någonting så enkelt som att stoppa in en sträng jag hämtar från en NSTextField i en NSTableView när jag trycker på en NSButton. Inga konstigheter med andra ord, men bifogar en skärmdump av fönstret för att säkerställa tydligheten.

Det närmsta jag sett en lösning på mitt problem är när man skapat en NSMutableArray och lägger till objekten där, och sedan som en blixt från klar himmel gör en reloadData på NSTableView-objektet, utan att någonsin koppla samman arrayen med tabellen. Nej, jag blir galen.

Någon som känner till en tutorial eller liknande för RubyCocoa som är anpassad för XCode 3 så att det går att hänga med även fast man inte redan kan det?

Plötsligt framstår (nästan) SWING i Java som någonting trevligt, där man bara behöver se till att objekten i listan har en toString.

Senast redigerat 2008-01-16 15:28
  • Medlem
  • Stockholm
  • 2008-01-16 15:28

Lösningen var enkel, men definitivt inte så som jag förväntat mig.
Istället för att man själv har kontroll och manuellt stoppar in värden, så har man bara sakerna i en lokal array, så tar NSTableVie själv hand om arbetet att hantera informationen så länge som man har följande tre funktioner (i detta fall anpassat för mitt exempel):

def numberOfRowsInTableView(aTableView)
return @strings.length
end

def tableView_objectValueForTableColumn_row(afileTable, aTableColumn, rowIndex)
return @strings[rowIndex]
end

def initialize
@strings = Array.new
end

  • Medlem
  • Simrishamn
  • 2008-01-16 19:54

Typiskt exempel på när RTFM sparar en timmar av arbete...

  • Medlem
  • Stockholm
  • 2008-01-16 20:18

Hehe, jag har glott i "manualen", men missade det totalt ju för att jag inte förväntade mig att jag skulle överskugga någonting med egna funktioner, utan istället letade efter hur man kontrollerade funktionerna i NSTableView. Blev lite som att leta efter en skruvmejsel när det vad en hammare man egentligen behövde.

Nu helt plötsligt så är det inga problem längre.

1
Bevaka tråden