Manuals
|
Afegint i Eliminant Ã?tems de la Barra d'EinesEl delegat d'una instà ncia NSToolbar es responsable de proporcionar els identificadors especificats pels Ãtems de la barra d'eines que estan a la barra d'eines, tant com els Ãtems per defecte en una nova barra d'eines. Items de barra d'eines per defecte i permesosEl mètode delegat requerit L'exemple d'implementació mostrat en el Llistat 1 configura la barra d'eines per permetre una selecció dels Ãtems de barra d'eines està ndard de Cocoa tant com els Ãtems de barra d'eines especÃfics de l'aplicació. La barra d'eines resultant es mostra en la Figura 1. Llistat 1: Exemple de la implementació del mètode
- (NSArray *) toolbarAllowedItemIdentifiers: (NSToolbar *) toolbar {
return [NSArray arrayWithObjects: SaveDocToolbarItemIdentifier,
NSToolbarPrintItemIdentifier,
NSToolbarShowColorsItemIdentifier,
NSToolbarShowFontsItemIdentifier,
NSToolbarCustomizeToolbarItemIdentifier,
NSToolbarFlexibleSpaceItemIdentifier,
NSToolbarSpaceItemIdentifier,
NSToolbarSeparatorItemIdentifier, nil];
}
Figura 1: Exemple de configuració d'Ãtems de barra d'eines El conjunt d'Ãtems de la barra d'eines per defecte són retornats implementant els mètode requerit El codi d'exemple del Llistat 2 causa que els Ãtems per defecte per configurar-se com es mostra en la Figura 2. Llistat 2: Exemple d'implementació del mètode
- (NSArray *) toolbarDefaultItemIdentifiers: (NSToolbar *) toolbar {
return [NSArray arrayWithObjects: SaveDocToolbarItemIdentifier,
NSToolbarPrintItemIdentifier,
NSToolbarSeparatorItemIdentifier,
NSToolbarShowColorsItemIdentifier,
NSToolbarShowFontsItemIdentifier,
NSToolbarFlexibleSpaceItemIdentifier,
NSToolbarSpaceItemIdentifier,
SearchDocToolbarItemIdentifier, nil];
}
Figura 2: Exemple de configuració d'Ãtems de barra d'eines Creant nous Ãtems de barra d'eines quan es demaniUna implementació del mètode requerit El codi d'exemple del Llistat 3 crea una instà ncia simple de NSToolbarItem per l'Ãtem de barra d'eines personalitzada de l'aplicació, Llistat 3: Una implementació del mètode
- (NSToolbarItem *) toolbar:(NSToolbar *)toolbar
itemForItemIdentifier:(NSString *)itemIdentifier
willBeInsertedIntoToolbar:(BOOL)flag
{
NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier: itemIdentifier] autorelease];
if ([itemIdentifier isEqual: SaveDocToolbarItemIdentifier]) {
// Posem l'etiqueta de text mostrada en la
// barra d'eines i la paleta de personalització
[toolbarItem setLabel:@"Save"];
[toolbarItem setPaletteLabel:@"Save"];
// Posem un missatge flotant raonable, i la imatge
// que voldrÃem localitzar per utilitzar l'Ãtem
[toolbarItem setToolTip:@"Save Your Document"];
[toolbarItem setImage:[NSImage imageNamed:@"SaveDocumentItemImage"]];
// Li diem quin missatge ha d'enviar quan es prem
[toolbarItem setTarget:self];
[toolbarItem setAction:@selector(saveDocument:)];
}
else {
// Identificador d'Ãtem que no exiteix
// o no està suportat per utilitzar-lo
// Retornant un nil s'informa a la barra d'eines
// que aquest tipus d'Ãtem no està suportat
toolbarItem = nil;
}
return toolbarItem;
}
Retornant un Ãtem de barra d'eines que crea una vista personalitzada es quelcom més complicat. A més d'especificar la informació necessà ria per un Ãtem de barra d'eines simple, l'aplicació també ha d'activar explÃcitament la vista que s'utilitzarà per dibuixar l'Ãtem, la mida mÃnima que la vista necessita per mostra la propietat, i la mida mà xima que l'Ãtem de la barra d'eines pot tenir. Un efecte col·lateral d'utilitzar una vista personalitzada per un Ãtem de barra d'eines que s'ha de considerar en aquest cas quan la barra d'eines es mostrat com només text. El comportament per defecte es mostrar l'etiqueta de l'Ãtem com un text desactivat, efectivament desactivant completament l'Ãtem de barra d'eines. Un Ãtem de barra d'eines també pot especificar una instà ncia NSMenu que s'utilitzarà quan la barra d'eines es mostri en mode només text. Aquest menú també s'utilitzarà quan un Ãtem de barra d'eines que utilitza una vista personalitzada es mostra en un menú que sobresurt de la barra d'eines. L'exemple del codi del Llistat 4 implementa un Ãtem de barra d'eines de cerca com es mostra en la Figura 1. Llistat 4: Una implementació del mètode
- (NSToolbarItem *) toolbar:(NSToolbar *)toolbar
itemForItemIdentifier:(NSString *)itemIdentifier
willBeInsertedIntoToolbar:(BOOL)flag
{
NSToolbarItem *toolbarItem = [[[NSToolbarItem alloc] initWithItemIdentifier:itemIdentifier] autorelease];
if ([itemIdentifier isEqual: SearchDocToolbarItemIdentifier]) {
// Posem les propietats està ndard
[toolbarItem setLabel:@"Search"];
[toolbarItem setPaletteLabel:@"Search"];
[toolbarItem setToolTip:@"Search Your Document"];
// Utilitzem una vista personalitzada, un camp de text arrodonit
// enganxada a un searchFieldOutlet de InterfaceBuilder com a
// vista personalitzada
[toolbarItem setView:searchFieldOutlet];
[toolbarItem setMinSize:NSMakeSize(100,NSHeight([searchFieldOutlet frame]))];
[toolbarItem setMaxSize:NSMakeSize(400,NSHeight([searchFieldOutlet frame]))];
// Crea el menú personalitzat
NSMenu *submenu=[[[NSMenu alloc] init] autorelease];
NSMenuItem *submenuItem=[[[NSMenuItem alloc] initWithTitle: @"Search Panel"
action:@selector(searchUsingSearchPanel:)
keyEquivalent: @""] autorelease];
NSMenuItem *menuFormRep=[[[NSMenuItem alloc] init] autorelease];
[submenu addItem: submenuItem];
[submenuItem setTarget:self];
[menuFormRep setSubmenu:submenu];
[menuFormRep setTitle:[toolbarItem label]];
[toolbarItem setMenuFormRepresentation:menuFormRep];
}
else {
// Identificador d'Ãtem que no exiteix
// o no està suportat per utilitzar-lo
// Retornant un nil s'informa a la barra d'eines
// que aquest tipus d'Ãtem no està suportat
toolbarItem = nil;
}
return toolbarItem;
}
Mitjançant programació afegir i eliminar Ãtems de barra d'einesMentre sota la majoria de circumstà ncies l'usuari afegeix i elimina els Ãtems des d'una barra d'eines utilitzat la plana de personalització o el menú de context, és possible insertar i eliminar Ãtems mitjançant la programació. El mètode El mètode Ser notificat quan els Ãtem s'afegeixen o eliminen de la barra d'einesUn delegat NSToolbar opcionalment pot notificar-se quan els Ãtems de la barra d'eines s'ha afegit o tret de la barra d'eines. El mètode delegat opcional El codi d'exemple del Llistat 5 posa el destà i l'acció per l'Ãtem Print està ndard quan el delegat es notificat que l'Ãtem serà afegit a la barra d'eines. Llistat 5: Una implementació del mètode
- (void) toolbarWillAddItem:(NSNotification *)notification {
NSToolbarItem *addedItem = [[notification userInfo] objectForKey: @"item"];
if ([[addedItem itemIdentifier] isEqual: NSToolbarPrintItemIdentifier]) {
[addedItem setToolTip:@"Print Your Document"];
[addedItem setTarget:self];
[addedItem setAction:@selector(myCustomPrintAction:)];
}
}
El mètode delegat opcional L'exemple del Llistat 6 invalida la cadena de cerca de l'aplicació quan l'Ãtem de cerca es treu de la barra d'eines. Llistat 6: Una implementació del mètode
- (void)toolbarDidRemoveItem:(NSNotification *)notification {
NSToolbarItem *removedItem = [[notification userInfo] objectForKey: @"item"];
if ([removedItem itemIdentifier] isEqual:SearchDocToolbarItemIdentifier) {
[self invalidateSearchString];
}
}
Altres objectes que el delegat de la barra d'eines poden registrar l'afegit i l'eliminació dels Ãtems de barra d'eines mitjançant el per Carles el 26/10/2005 - 08:59, actualitzat el 26/10/2005 - 09:09 | versió per a imprimir | entreu o registreu-vos per a enviar comentaris
|
apadrinamentsAjuda a fer crèixer la barra verda amb les teves donacions!
4% (50,0 de 1.235,0€) 61% (190,0 de 314,0€) 47% (545,0 de 1.170,0€) 33% (528,0 de 1.610,0€) 63% (38.010,0 de 60.000,0€) 61% (700,0 de 1.155,0€) comesfa.orgel teu usuariopcionsQui està en lÃniaAra hi han 2 usuaris i 321 convidats connectats.
Usuaris connectats:
és populard'avui... |