Question

Je Liste classe d'affichage comme NSCollectionView requiert un élément prototype supplémentaire et une vue prototype pour être d'une quelconque utilité. Lorsque vous déposez un NSCollectionView de la bibliothèque dans Interface Builder ces deux éléments auxiliaires sont créés automatiquement. Cependant, je ne pouvais pas trouver un seul document de négociation officiel d'Apple avec ce cas d'utilisation (qui décrit comment son fait).

Creuser à travers l'iPhone d'Apple Dev Guides je ne pouvais cependant trouver " ibDidAddToDesignableDocument : »
. Avec le code suivant j'ai réussi à obtenir mes articles auxiliaires créés à goutte de la bibliothèque:

- (void)ibDidAddToDesignableDocument:(IBDocument *)document {
    [super ibDidAddToDesignableDocument:document];

    NSView *prototypeView = [[[NSView alloc] initWithFrame:NSMakeRect(0.0, 0.0, 300, 65.0)] autorelease];
    DLListViewItem *prototypeViewItem = [[[DLListViewItem alloc] initWithNibName:nil bundle:nil] autorelease];

    [document addObject:prototypeViewItem toParent:nil];
    [document addObject:prototypeView toParent:nil];

    [document connectOutlet:@"view" ofSourceObject:prototypeViewItem toDestinationObject:prototypeView];
    [document connectOutlet:@"listView" ofSourceObject:prototypeViewItem toDestinationObject:self];
    [document connectOutlet:@"prototypeItem" ofSourceObject:self toDestinationObject:prototypeViewItem];
}

Mais ...

... IB ajoute ces éléments aux pour NSCollectionView uniquement sur la traînée réelle initiale de la bibliothèque , pas sur tout autre appel de « ibDidAddToDesignableDocument : », tel que lors de l'incorporation, la copie ou de duplication de l'élément. (Alors que ma méthode serait, et sur tous)

Je me demande donc si Apple utilise en fait « ibDidAddToDesignableDocument: » pour cela et si je suis sur la bonne voie avec du tout.

Comment peut-on imiter cela correctement? Je vais avoir du mal à essayer de faire la distinction entre les différents contextes pour « ibDidAddToDesignableDocument: ». Tout le monde fait avec succès ce
Malheureusement, aucun de Google, Google Code, GitHub, ou la documentation a révélé quelque chose d'utile, donc je suis désespérément besoin d'aide ici. : (

Merci à l'avance!

Edit: Oh grand, cette question me a le badge Tumbleweed, youpi! Non.
Je suis plus dans des réponses utiles en fait, mais merci quand même;)

Était-ce utile?

La solution

Je lutté avec cela sur un plugin que je me suis fait tout à l'heure. Dans mon cas, j'ai pu vérifier une propriété de l'objet pour voir si elle avait été initialisé déjà et ignorer l'ajout des objets auxilliaires dans ce cas. Je crois que BWToolkit utilise une vérification interne est similaire. Ne pourriez-vous vérifier la propriété « prototypeItem » de votre objet pour voir si vous avez besoin de sauter la création de vos objets aux?

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top