Ich versuche derzeit, eine UITableView
mit einer delegate und data source zu implementieren, die so genau wie möglich die Funktionalität der ABAddressBookUI
Klasse ABPeoplePickerNavigationController
Klasse Framework repliziert, aber mit der zusätzlichen Fähigkeit, mehrere Kontakte auf einmal auswählen (wie durch Hinzufügen/Entfernen einer Zubehöransicht zum entsprechenden UITableViewCell
). „Abschnittsindex Titel“ lokalisiert (die Buchstaben, die auf der rechten Seite des Bildschirms in der Scroll-Overlay angezeigt) für die UITableView
Cocoa-Methode zum Zurückgeben einer Liste aller Buchstaben im aktuellen Gebietsschema-Alphabet?
Alles funktioniert gut, mit Ausnahme des Vorsehens als sollten von der data source Verfahren zurückgeführt werden:
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView
Offensichtlich konnte ich wieder nur ein NSArray
mit dem NSStrings
A, B, C ... Z, aber ich mag diese Methode ideal würde eine Reihe von all das zurückzukehren (ggf. Großbuchstaben) Buchstaben des Alphabets des aktuellen Gebiets.
Eine vielversprechende Führung war:
[[
NSLocale
currentLocale ] objectForKey:@"NSLocaleExemplarCharacterSet" ]
Aber ich kann keine nennenswerte Dokumentation zu diesem Thema finden und es gibt ein NSCharacterSet
, aus dem ich nicht in der Lage gewesen bin zu extrahieren die tatsächlichen Zeichen (wenn ich das könnte, dann könnte NSCharacterSet capitalizedLetterCharacterSet
auch ein vielversprechender Ausgangspunkt sein).
Ich habe auch eine otool -tV
auf dem AddressBookUI
Rahmen laufen, die einen Aufruf der Funktion ABAddressBookCopySectionIndices()
ergab, in die ein ABAddressBookRef
übergeben werden kann, genau zu erhalten, was ich suche ... ein CFArray des lokalisierten Alphabets. Allerdings, es ist eine private Funktion, so kann ich es nicht in meiner App verwenden.
Weiß jemand also, ob Cocoa Touch diese Funktionalität unterstützt? Und wenn nicht, gibt es irgendwelche Ideen, wie ABAddressBookCopyIndices()
seine Magie funktioniert? Ich vermute, die International Components for Unicode Bibliothek auch den Schlüssel halten kann, aber ich bin nicht (noch) vertraut mit seinen Fähigkeiten ...
Eine weitere Möglichkeit zum Protokollieren eines Zeichensatzes http: // stackoverflow.com/questions/3804270/how-to-print-Zeichensatz-in-objective-c – Robert