Was sind die Tags um Standard-iPhone-Adressbuch Personen Telefonnummer Etiketten?

8

Meine Frage bezieht sich auf Markups, die einige der standardmäßigen Telefonnummernbeschriftungen in den Personeneinträgen der Kontaktliste auf dem iPhone umgeben.

Ich habe einen Adressbucheintrag für die iPhone-Kontaktliste für eine Person namens "John Smith" mit den folgenden Telefonnummerneinträgen erstellt:

  • Mobil (604) 123-4567
  • iPhone (778) 123-4567
  • Startseite (604) 789-4561
  • Arbeit (604) 456-7891
  • Haupt (604) 789-1234
  • Megaphon (234) 567-8990

Beachten Sie, dass die ersten fünf Labels Standard-Labels sind, die von der Anwendung Kontakte bereitgestellt werden, und das letzte Label "Megaphon" ein benutzerdefiniertes Label ist.

Ich habe die folgende Methode zum Abrufen und Anzeigen der Beschriftungen und Telefonnummern für jede Person im Adressbuch geschrieben:

%Vor%

und hier ist die Ausgabe für den Adressbucheintrag, den ich eingegeben habe:

%Vor%

Was sind die Markup-Zeichen

? %Vor%

am meisten, außer für iPhone, der Standard-Etiketten für?

Können Sie mich darauf hinweisen, wo ich im "Adressbuch-Programmierleitfaden für iPhone OS" die Informationen finde?

Danke für Ihre Hilfe.

    
rnistuk 08.03.2010, 21:41
quelle

2 Antworten

7

Ich stoße auf das gleiche Problem. Das ist was ich bisher denke.

Das Markup, das Ihr Seeing dem System anzeigt, dass es sich um ein Standard-Label und nicht um ein benutzerdefiniertes Label handelt. Wenn Sie diesen Code ausführen:
NSLog(kABOtherLabel);

Sie erhalten dieses Ergebnis:
_$!<Other>!$_

Das ist also der Wert, der in der kABOtherLabel -Konstante (vom Typ CFStringRef) gespeichert ist. Ich denke, der Grund iPhone hat nicht das Markup um es ist, weil es ein "Custom" -Label ist, aber es ist eine von Apple anstelle des Benutzers.

Sie können dem Label einen beliebigen Wert geben, wie oben in% code_% angegeben. Beachten Sie jedoch Folgendes: Wenn Sie versuchen, eine Telefonnummer (oder E-Mail-Adresse) mit der Bezeichnung "Sonstige" zu erstellen, ohne die megaphone -Konstante oder den Wert kABOtherLabel zu verwenden, wird das System annehmen, dass Sie ein benutzerdefiniertes Etikett erstellen . Wie in diesem Beispiel:

%Vor%

Und wenn Sie diesen Adressbucheintrag auf dem iPhone bearbeiten, wird er in einer separaten Liste mit benutzerdefinierten Labels angezeigt. (Es gibt also zwei Möglichkeiten für "andere", eine in den Standardeinstellungen und eine in den benutzerdefinierten Bezeichnungen)

Obwohl dies Ihre Frage nicht beantwortet hat, hoffe ich, dass es hilft.

    
Andrew 14.03.2010, 01:11
quelle
2

Dies ist weitgehend das Gleiche im neuen CNContact-Framework , das ABAddressBook als empfohlene Methode zum Umgang mit Kontakten ersetzt hat.

Apple bietet sechs Standardkennsätze, auf die mit telefonspezifischen CNLabledledValue-Konstanten verwiesen wird:

%Vor%

Die Einbeziehung von _$!< und >!$_ um fünf dieser Konstanten ist höchstwahrscheinlich eine Markierung dafür, dass die Strings vom Betriebssystem lokalisiert werden können, wenn die Methode localizedString (forLabel :) . Ich glaube, der Grund, warum diese Begrenzer nicht um das iPhone herum erscheinen, liegt darin, dass Apple das iPhone, das in allen Sprachen als "iPhone" angezeigt wird, nicht lokalisiert.

Das sinnvolle Verhalten wäre, diese beim Anzeigen der Zeichenkette auszublenden, was unter Verwendung von localizedString(forLabel:) geschieht, diese Trennzeichen weiterhin mit der Zeichenkette zu speichern, wenn der Eintrag bearbeitet wird, und jede benutzerdefinierte Zeichenkette den Zeichenketten zuzuordnen, bei denen die benutzerdefinierte Beschriftung vorhanden ist war gleich dem Hauptteil von diesen, dh Mobile, Main, Pager, und so weiter.

    
Duncan Babbage 26.05.2017 01:15
quelle

Tags und Links