J'ai une colonne de tableau que je lie à une valeur dans un fichier NSArrayController
. Ce que j'essaie de faire, c'est d'afficher uniquement une sous-chaîne de la valeur réelle dans le contrôleur de tableau. La façon dont j'ai essayé de le faire jusqu'à présent est de créer un fichier de type NSValueTransformer
puis en effectuant la manipulation des chaînes de caractères dans la sous-classe transformedValue
méthode. Cependant, je n'arrive pas à trouver comment transformer la valeur entrante en une chaîne de caractères (elle est de type NSConcreteValue
), et il y a peut-être un moyen plus simple de le faire sans transformateurs de valeur.
Réponses
Trop de publicités?On dirait que vous effectuez un formatage du côté de la présentation, auquel cas vous devriez plutôt utiliser un formateur.
Par contre, s'il s'agit d'une chaîne contenant plusieurs valeurs (par exemple, quelque chose comme "de 42 à 100"), vous devriez plutôt créer un objet modèle à partir de cette chaîne et le stocker dans le contrôleur de tableau. Vous pourrez alors lier les colonnes de votre tableau à des propriétés spécifiques des objets de modèle, sans avoir à vous soucier de séparer la chaîne et de la réassembler (sauf lorsque vous chargez et enregistrez le modèle).
Edit : Never mind ; je n'avais pas vu que les valeurs des objets sont des NSValues, et non des NSStrings.
Vous pouvez obtenir une représentation sous forme de chaîne de caractères de tout objet en utilisant la fonction -description
mais pour les instances de NSValue, il est peu probable qu'elle affiche quelque chose de particulièrement significatif. En d'autres termes, c'est à votre transformateur de valeur d'interpréter l'objet transmis et de produire une chaîne de caractères. S'il s'agit d'une instance de NSValue, la question est de savoir quel type de données cette instance contient. Une fois que vous le savez, vous pouvez écrire du code pour le représenter sous forme de chaîne de caractères (similaire à NSStringFromRect()
).