Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Cross-Platform-Entwicklung (https://www.delphipraxis.net/91-cross-platform-entwicklung/)
-   -   iOS UIPickerView - 2 abhängige Spalten (https://www.delphipraxis.net/179137-uipickerview-2-abhaengige-spalten.html)

Crocotronic 16. Feb 2014 20:28

UIPickerView - 2 abhängige Spalten
 
Hallo,
kann mir jemand erklären, wie ich mit dem UIPickerView 2 abhängige Spalten erzeuge?
Es soll so funktionieren: In der ersten Spalte sind zum Beispiel Alben aufgelistet, in der Zweiten sollen die dazugehörigen Titel stehen.
Hab irgendwas mit reloadComponent gefunden, aber das hat mich nicht viel weiter gebracht :?

Viele Grüße
Croco

jensw_2000 17. Feb 2014 02:37

AW: UIPickerView - 2 abhängige Spalten
 
Liste der Anhänge anzeigen (Anzahl: 2)
Habe Dir was zum Basteln angehängt.

Dein ViewController muss "irgendwie" die Interfaces (zu Apple Deutsch "protocol's") UIPickerViewDataSource und UIPickerViewDelegate implementieren.

In deinem Viewcontroller implementierst Du dann die Methoden des PickerView Delegates und der PickerView DataSource:
(Deine Komponente muss letzztendlich was Ähnliches machen - über Properties und Events, oder wie auch immer)

Delphi-Quellcode:
    method numberOfComponentsInPickerView(pickerView: UIPickerView): NSInteger;
    method pickerView(pickerView: UIPickerView) numberOfRowsInComponent(component: NSInteger): NSInteger;
    method pickerView(pickerView: UIPickerView) titleForRow(row: NSInteger) forComponent(component: NSInteger): String;
    method pickerView(pickerView: UIPickerView) didSelectRow(row: NSInteger) inComponent(component: NSInteger);
Funktionierender Oxygene Beispielcode hängt dran.
Viel Spaß beim Basteln.

Crocotronic 17. Feb 2014 17:27

AW: UIPickerView - 2 abhängige Spalten
 
Vielen Dank dafür!!!
Jetzt muss ich nur noch schaffen, die ganzen Methoden zu überschreiben...Delphi macht es da einem nicht einfach :roll:

Crocotronic 17. Feb 2014 18:57

AW: UIPickerView - 2 abhängige Spalten
 
Ah, bei einer Sache hakt es beim "übersetzten" noch.
Delphi-Quellcode:
var selectedIndex := pickerView.selectedRowInComponent(0);
      var arr := NSMutableArray.alloc.initWithArray(PickerData.objectForKey(selectedIndex));
selectedIndex ist ein NSInteger, aber objectForKey erwartet einen Pointer?

jensw_2000 17. Feb 2014 20:28

AW: UIPickerView - 2 abhängige Spalten
 
Zitat:

selectedIndex ist ein NSInteger, aber objectForKey erwartet einen Pointer?
Kann sein. Für einfache Datentypen gibt es bei mir ein automatisches "boxing / unboxing".
Probier mal diese "Pointer Dinger" aus, also & davor, oder @ oder ^.
Eventuell reicht es auch schon, wenn Du selectedIndex als NSInteger deklarierst.
Delphi-Quellcode:
var selectedIndex := pickerView.selectedRowInComponent(0);
var arr := NSMutableArray.alloc.initWithArray(PickerData.objectForKey(&selectedIndex));


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz