Què és Cocoa?Cocoa és un dels entorns dels sistema operatiu Mac OS X, juntament amb els entorns Carbon i Java. Consisteix d'un conjunt de llibreries i un intèrpret de programari orientat a objectes, i comparteix un entorn de desenvolupament integrat amb altres entorns d'aplicacions. Aquest tòpic de programació expandeix aquesta definició, descrivint el propòsit, les capacitats, i la forma física de Cocoa. Llegint aquesta descripció funcional de Cocoa, és un primer pas essencial per entendre Cocoa com un desenvolupador. L'Entorn CocoaLes aplicacions Cocoa estan entrant gradualment en la normalitat de Mac OS X. iPhoto és una aplicació Cocoa, com ho són les aplicacions Safari i Mail. Aquestes aplicacions han rebut una aclamació de bones crítiques per seus dissenys nets i rics en característiques, i per les interfícies d'usuari atractives. Però el que no és aparent a l'usuari mitjà és com de ràpid (comparat amb els temps de desenvolupament típics) aquestes aplicacions han passat de l'estat de disseny a l'estat de desplegament. Què hi ha a Cocoa que fa que sigui una alternativa completament viable a Carbon com una aplicació d'entorn de desenvolupament? Aquesta secció dona una resposta a aquesta qüestió. Introduint-nos a CocoaCom en tots els entorns d'aplicació, Cocoa té dues cares; té una part d'execució i una part de desenvolupament. En l'aspecte d'execució, les aplicacions Cocoa presenten la interfície d'usuari Aqua i estan perfectament integrants amb les altres parts visibles del sistema operatiu: el Finder, el Dock, i altres aplicacions de tots els entorns. Per aconseguir, arribar a ser un part sense fissures de l'experiència de l'usuari, Cocoa en l'aspecte d'execució exhibeix l'excel·lència. Però és en l'aspecte del desenvolupament que és més interessant pels programadors. Cocoa és un conjunt integrat de components de programari orientat a objectes -- classes -- que et permeten crear ràpidament aplicacions per Mac OS X robustes i amb tots els requeriments. Aquestes classes són blocs de programari re-utilitzables i adaptables; els desenvolupadors poden usar-los o poden estendre-les per als seus requeriments específics. Les classes Cocoa existeixen només sobre cada necessitat concebible en el desenvolupament, des d'objectes d'interfície d'usuari per fer xarxa Bonjours, i on una necessitats no s'ha pensat anteriorment, pots crear fàcilment una sub-classe d'una classe existent que respongui a les teves necessitats. Cocoa té un dels majors pedigrí entre els entorns de desenvolupament orientats a objectes. Des de la seva introducció com NeXTSTEP el 1989 per avui en dia, s'ha re-definit i comprovat contínuament. El seu disseny elegant i potent és un conjunt ideal per al desenvolupament ràpid de programari de tot tipus, no només aplicacions sinó també eines de línia de comandes, plug-ins, i altres tipus de paquets. Cocoa dona a la teva aplicació la majoria de les seves característiques i aparença "per estalviar", estalviar-te temps de treball per dedicar-lo a les característiques que són distintives. Pots utilitzar varis llenguatges de programació per desenvolupar programari Cocoa. El llenguatge principal és l'Objective-C, que té el seu propi sistema d'execució per Cocoa. L'Objective-C és un súper-conjunt de ANSI C que s'ha estès amb certes característiques sintàctiques i semàntiques (derivades de l'Smalltalk) per donar suport a la programació orientada a objectes. Les poques convencions afegides són fàcils d'aprendre i utilitzar. Ja que Objective-C es basa en la fundació ANSI C, pots lliurement barrejar codi C estricte amb codi Objective-C. Més encara, fins i tot pots barrejar codi C++ amb el teu codi Cocoa i enllaçar-lo dins el mateix executable- Finalment, Cocoa suporta el llenguatge Java a través d'un conjunt paral·lel de classes Java i un mecanisme de ponts entre les interfícies Java amb la seva correspondència en Objective-C. El gust Java de Cocoa et permet barrejar (sense límits) objectes natius de Java amb objectes Cocoa. Les biblioteques base de classes Cocoa venen empaquetades en dues frameworks, la Foundation i la Application Kit. Com en totes les frameworks, aquestes contenen no solament una llibreria compartida dinàmicament (o de vegades varies versions de compatibilitat de llibreries), sinó també fitxers de capçalera, documentació API, i recursos relacionats. Aquest duo, reflexa la divisió entre les interfícies de programació gràfiques de Cocoa que tenen unes i les altres no. Aquestes dues frameworks són essencials per qualsevol projecte Cocoa en que el producte final és una aplicació. Mac OS X també envia varies frameworks més petites que les interfícies de Cocoa principals, com són les frameworks de Salva Pantalles i l'Agenda, i altres que seran afegits al sistema operatiu en un temps. Com Encaixa Cocoa dins el Mac OS XSi has navegat la web Apple Developer Connection (http://developer.apple.com/), probablement t'has creuat amb el diagrama de l'arquitectura del sistema mostrat en la següent figura. Figura 1: Arquitectura Mac OS X -- perspectiva simplificada Aquest diagrama és sempre per un motiu: per representar sense confusions als que no estan familiaritzats amb Mac OS X les dependències entre components. Però en aquesta simplicitat s'omet detalls importants i n'emmascara altres. Aquests detalls s'omplen en una part important en la imatge que mostra com Cocoa s'ajunta amb la resta del Mac OS X. La següent figura situa Cocoa amb més precisió en l'arquitectura. Aquest diagrama mostra el Mac OS X com un serie de capes de programari que van des de la fundació de Darwin als variats entorns d'aplicació; les capes intervenen representen els contenidors de programari del sistema sota el paraigües dels dos frameworks majors, Core Services i Application Services. El diagrama suggereix que un component en una capa generalment té dependències en la capa de sota. Figura 2: Cocoa en l'arquitectura de Mac OS X D'alguna forma, aquest diagrama és similar a l'anterior. Per exemple, el component dels sistema que és en gran part responsable de re-dibuixar la interfície d'usuari Aqua, Quartz (implementat en la framework Core Graphics) és part de la capa Application Services. I a la base de la pila de l'arquitectura hi ha Darwin; tot dins Mac OS X, inclòs Cocoa, finalment depèn de les funcions Darwin. Apple ha dissenyat curosament Cocoa per que algunes de les seves interfícies donin accés a les capacitats de les capacitats de les tecnologies internes que les aplicacions necessiten normalment. Però si necessites algunes capacitats que no es mostren a través de les interfícies programades de Cocoa, o si necessites un control més acurat de que succeeix en la teva aplicació, pots utilitzar directament les frameworks internes. (Un exemple típic és Core Graphics; que criden les seves funcions a les d'OpenGL, el teu codi pot dibuixar imatges més complexes que les possibilitats que et permeten els mètodes de dibuix de Cocoa) Afortunadament, utilitzar aquestes frameworks de baix nivell no és un problema perquè les interfícies de la majoria de frameworks depenents estan escrites en ANSI C estàndard, del qual el llenguatge Objective-C n'és un súper-conjunt. Les principals frameworks internes que Cocoa depèn o de les que utilitza a través de les seves classes i mètodes són la Core Foundation, Carbon, Core Graphics (Quartz), Launch Services, i Print Core (el sub-sistema d'impressió):
A més, Cocoa utilitza el servei de conversió de text de l'entorn de Carbon per algunes conversions de codificacions de cadenes. Varis mètodes Cocoa també utilitzen parts de la framework I/O Kit per la gestió de l'energia, la framework QuickDraw (QD) per el dibuixat QuickDraw, la framework Apple esdeveniment (AE) per el processat dels Esdeveniments d'Apple, i la framework ATS per el suport de fonts. Característiques de les Aplicacions CocoaÉs possible crear una aplicació Cocoa sense afegir cap línia de codi. Fer un nou projecte d'aplicació Cocoa utilitzant XCode i llavors construir el projecte. És així. Per descomptat, aquesta aplicació no farà gran cosa, o com a mínim res que sigui interessant. Però aquest aplicació extremadament simple permet executar-se quan es fa doble clic, mostrar el seu icona al Dock, mostrar el seu menú i finestra principal (titulada, "Window"), oculta les seves comandes, es comporta de forma semblant a altres aplicacions que corren, i surt quan se li indica. Pots moure, canviar la mida, minimitzar, i tancar la finestra. Pots fins i tot imprimir el contingut (buit) de la finestra. Imagina que podries aconseguir amb una mica de codi. En termes d'esforç de programació, Cocoa et dona, al desenvolupador, moltes coses lliures i moltes que tenen un cost baix. Per descomptat, arribar a ser un desenvolupador productiu de Cocoa significar arribar a familiaritzar-te amb conceptes nous, patrons de disseny, interfícies de programació, i eines de desenvolupament, i aquest esforç no és negligible. Però a més familiaritat millor productivitat. La programació acaba essent en gran part un exercici de muntar els components programats que proporciona Cocoa a els objectes propis i el codi que defineix la lògica del teu programa en particular i tot això enganxar-ho junt. A continuació es mostra una llista de quin valor afegit té Cocoa en un aplicació amb només amb una mica d'esforç per part teva:
L'entorn de DesenvolupamentLes següents seccions parlen de l'XCode, l'Interface Builder, i les altres aplicacions, eines i recursos que formen part de l'entorn de desenvolupant integrat al Mac OS X--amb un especial èmfasi a Cocoa. IntroduccióPer dir que Cocoa té el seu propi entorn de desenvolupament no seria un definició exacta. Per un motiu, els programadors poden utilitzar les aplicacions de desenvolupament d'Apple, Xcode i Interface Builder o altres entorns de desenvolupament per desenvolupar Programari, com Carbon. Altrament, és possible desenvolupar aplicacions Cocoa sense utilitzar XCode i Interface Builder. Per exemple, pots utilitzar CodeWarrior de Metrowerks per gestionar, compilar i depurar els projectes Cocoa. I, si vols treballar realment en la base forta, pots escriure codi utilitzant un editor de text com Emacs, construir aplicacions des de la línia de comandes utilitzant fitxers make, i depurar l'aplicació des de la línia de comanda utilitzant el depurador gdb. Però l'XCode i l'Interface Builder són les aplicacions preferides a utilitzar per desenvolupar programari Cocoa. Els seus orígens coincideixen amb els orígens de Cocoa, i conseqüentment hi ha un alt grau de compatibilitat entre les eines i frameworks. A la vegada, Xcode i Interface Builder el fan extraordinàriament fàcil per dissenyar, gestionar, construir i depurar projectes de programari Cocoa. També hi ha l'AppleScript Studio, que expandeix algunes capacitats per permetre't crear tant aplicacions Cocoa escriptables com aplicacions que utilitzen AppleScript per controlar altres aplicacions. XCodeXcode es un motor que acciona l'entorn de desenvolupament integrat (IDE) d'Apple per a Mac OS X. Aquesta és una aplicació que té en compte la majoria de detalls del projecte des de la concepció fins al desplegament. Aquest et permet
XCode construeix projectes a partir de codi escrit en C, C++, Objective-C, Objective-C++, i Java. Genera executables per tots els tipus suportats en Mac OS X, incloent-hi eines de línia de comanda, frameworks, plug-ins, extensions del kernel, paquets i aplicacions. XCode permet personalitzacions il·limitades de les eines de muntatge i depuració, els paquets executables (incloent-hi la informació de les llistes de propietats i paquets de localització), processos de muntatge (incloent-hi el copiat de fitxers, fitxers escript, i altres fases de la construcció), i la interfície d'usuari (incloent-hi editors separats i multi-finestra). Si el teu codi està en un dipòsit, aquest facilita el control del codi font, permetent-te afegir arxius al dipòsit, enviar els canvis, obtindre versions modificades, i comparar-ne versions. Figura 1: L'exemple del projecte TextEdit amb XCode. XCode està especialment realitzat pel desenvolupament Cocoa. Quan crees un projecte, Xcode instal·la el seu entorn de desenvolupament inicial utilitzant plantilles de projectes corresponents a tipus de projectes Cocoa: aplicació (Objective-C o Java), aplicació basada en documents (Objective-C o Java), eines, paquets, i frameworks. Per compilar programari Cocoa, XCode utilitza el compilador (gcc) de GNU C, i per depurar aquest programari, utilitza el depurador (gdb) de codi GNU. Tant gcc com gdb s'han utilitzat en el desenvolupament amb Cocoa des de que Cocoa estava a NeXSTEP i durant aquests anys s'ha millorat, estès, i adaptat per permetre la compilació i depuració de binaris Cocoa. XCode també té una característica de navegació per classes que et permet veure les classes de totes les frameworks importats del Cocoa més qualsevol classe personalitzada amb les seves relacions d'herència; des del navegador de classes pots demanar documentació de qualsevol classe. XCode d'integra amb altres aplicacions de desenvolupament importants com Interface Builder. A l'Interface Builder pots definit una classe (súper-classe, endolls i accions) i generar un esquelet de fitxers de codi i de capçalera per cada classe del teu projecte. A XCode, tu pots afegir endolls i accions el les teves classes personalitzades, i fan que l'Interface Builder importi aquestes entitats dins els fitxers nib. Interface BuilderLa segona aplicació més important en els projectes Cocoa és l'Interface Builder (Constructor de la Interfície). Com diu el seu nom, l'Interface Builder és una eina gràfica per crear interfícies d'usuari. L'Interface Buider ha existit almenys des de la concepció de Cocoa com NeXSTEP. Des de llavors, ha rebut un gran reconeixement convertint-se en un de les millors aplicacions d'aquest tipus. No es sorprenent que la seva integració amb Cocoa sigui hermètica. A més, també pots utilitzar-lo per crear interfícies d'usuari per aplicacions Carbon. L'Interface Builder es centra al voltant de tres elements principals del disseny:
La Figura 2 mostra un fitxer nib obert en l'Interface Builder, amb finestres de suport. Figura 2: Finestra de Preferències de TextEdit en l'Interface Builder. La seqüència general per crear una interfície d'usuari a l'Interface Builder és directa:
L'Interface Builder inclou una característica que mostra momentàniament amb línies blaves la distància de la posició de cada objecte, quan aquest és mou o es re-dimensiona, seguint les pautes d'interfície humana d'Aqua. Aquestes distàncies inclouen mides recomanades, alineament, i posicions relatives a altres objectes dins la interfície d'usuari i amb els extrems de la finestra. AppleScript StudioUna característica que ha definit Mac OS X durant anys ha esta la capacitat pels usuaris de controlar les aplicacions amb escripts escrits en llenguatge AppleScript. Molts usuaris troben aquesta característica indispensable, perquè els permet encadenar una sèrie d'operacions relacionades amb múltiples aplicacions. Les capacitats d'AppleScript s'han portat a terme dins Mac OS X. L'AppleScript Studio és una tecnologia de desenvolupament per crear aplicacions Cocoa que utilitzen escripts AppleScript per controlar interfícies d'usuari complexes. L'AppleScript Studio combina elements, des de AppleScript, XCode, Interface Builder, i Cocoa per proporcionar un entorn sofisticat per crear solucions AppleScripts. Això et permet construir aplicacions que poden fer el següent:
Pel fet que AppleScript Studio integra AppleScript amb l'XCode, l'Interface Builder, i Cocoa, els creadors d'escripts poder aprofitar-se de les seves capacitats. Poden arrossegar un ric conjunt d'objectes d'interfícies d'usuari fora de les paletes de l'Interface Builder i personalitzar-los com més els agradi. Poden construir conjuntament amb el suport de les pautes Aqua sobre les interfícies humanes. I permetes construir i mantenir projectes complexes amb múltiples destins i passos en la construcció. Altres Eines de DesenvolupamentA part de l'XCode i l'Interface Builder com a eines més importants, hi ha dotzenes d'altres eines a la teva disposició. Però aquest apartat ja el traduiré quan es vagi avançant en el curs i les necessitem. Les Frameworks CocoaLes següents seccions resumeixen les classes i els paradigmes més importants de les frameworks Cocoa, particularment les framework base Foundation i Application Kit. IntroduccióQuè fa d'un programa un programa Cocoa? No és el llenguatge, perquè pots utilitzar varies llenguatges en el desenvolupament de Cocoa, No són les eines de desenvolupament, perquè pots crear aplicacions Cocoa des de la línia de comandes (encara que seria més complexe, i es trigaria més). No, el que tenen totes els programes Cocoa en comú --que els fa diferents-- és que estan compostos d'objectes que hereten totes de la classe arrel, NSObject, i que al final estan basades en un sistema d'execució Objective-C. Aquesta definició també és correcta per totes les frameworks cocoa. Mac OS X inclou varies frameworks Cocoa, i els venedors a tercers de solucions Apple estan llençant frameworks en tot moment. Encara que aquesta multiplicitat de frameworks de cocoa, dues d'elles estan a part dels altres. Foundation i Application Kit són les frameworks base de Cocoa. No pots desenvolupar un aplicació Cocoa sense enllaçar (i utilitzar classes de) l'Application Kit. I no pots desenvolupar programari Cocoa de cap tipus sense també enllaçar -- i utilitzar classes -- de la framework Foundation. (L'enllaçat d'aquestes frameworks es realitza automàticament quan utilitzes les frameworks Cocoa). Les frameworks Foundation i Application Kit són essencials en el desenvolupament Cocoa, i totes les altres són secundàries. Les següents seccions examinen les característiques i classes d'aquestes dues frameworks Cocoa i descriurem breument algunes frameworks secundaris. Per fer aquestes frameworks més accessibles, les introduccions d'aquestes frameworks analitzen dotzenes de classes de cada jerarquia agrupades funcionalment. Encara que aquestes agrupacions tenen una forta base lògica, un pot agrupar perfectament classes d'altres maneres. FoundationLa framework Foundation defineix una capa base de classes que poden utilitzar-se en qualsevol tipus de programa Cocoa. El criteri de separació de classes dins a Foundation de les de Application Kit és la interfícies d'usuari. Si un objectes no apareix a cada interfície d'usuari no és usat exclusivament per donar suport a la interfície d'usuari, llavors aquesta classe pertany a Foundation. Pots crear programes Cocoa que utilitzen Foundation i cap altra framework; exemples d'aquest són les eines de línia de comandes i serveis d'internet. La framework Foundation s'ha dissenyat amb certes metes en ment:
Les aplicacions Cocoa, que per definició també enllacen amb l'Application Kit, d'igual forma també han d'enllaçar-se amb la framework Foundation. La jerarquia de classes comparteixen la mateixa classe arrel, NSObject, i molts si no la majoria dels mètodes i funcions de l'Application Kit i tenen objectes de Foundation ja sigui com a paràmetres o com a valors de retorn. Algunes classes de Foundation poden semblar dissenyades per aplicacions --NSUndoManager i NSUserDefaults, per dir dos noms-- però estan dins a Foundation perquè poden utilitzar-se per coses que no involucren la interfície d'usuari./p Paradigmes i polítiques de FoundationFoundation afegeix varis paradigmes i polítiques a la programació de Cocoa per assegurar un comportament consistent i unes expectatives constants entre els objectes d'un programa en certes situacions. Aquestes inclouen:
Les Classe FoundationLa jerarquia de classes de Foundation està arrelada en la classe NSObject, que (juntament amb els protocols NSObject i NSCopying) defineix els atributs i comportament bàsics dels objectes. La resta de la framework Foundation consisteix en varis grups relacionats de classes així com algunes classes individuals. Ho ha classe que representen tipus de dades bàsics com strings i matrius de caràcter, classe de col·leccions per l'emmagatzematge d'objectes, classes que representen informació del sistema com dates, i classes que representen entitats del sistema com ports, fils, i processos. La gràfica de la jerarquia de classes, de les següents tres figures representa els grups lògics d'aquestes així com les seves relacions d'herència. Figura 1: La jerarquia de classes Foundation --Objective-C (part 1) Figura 2: La jerarquia de classes Foundation --Objective-C (part 2) Figura 2: La jerarquia de classes Foundation --Objective-C (part 3) Els diagrames agrupen amb lògica de la framework Foundation en les categories següents (amb altres associacions no precisades):
Application KitApplicaton Kit és una framework que conté tots els objectes que necessites per implementar la teva interfície d'usuari gràfica conduïda per esdeveniments: Finestres, diàlegs, botons, menús, desplaçadors, camps de text -- llistes d'aquests. Application Kit s'ocupa de tots els detalls per tu, així dibuixa eficientment en la pantalla, es comunica amb el dispositius de maquinari i els buffers de la pantalla, neteja àrees de la pantalla abans de dibuixar-hi i retalla vistes. El nombre de classes dins Application Kit poden fer por en un primer moment. Així, la majoria de classes d'Application Kit són classes de suport que utilitzes indirectament. També has d'escollir en quin nivell utilitzes l'Application Kit:
Descripció de l'Application KitL'Application Kit consisteix en més de 124 classes i protocols. Totes les classes al capdavall hereten de la classe NSObject de la framework Foundation. Els dos diagrames següents mostren les relacions d'herència de les classes d'Application Kit. Figura 4: La jerarquia de classes Application Kit --Objective-C (part 1) Figura 5: La jerarquia de classes Application Kit --Objective-C (part 2) Com pots veure, l'arbre de la jerarquia de l'Application Kit és extens però poc profund; les classes més profundes provenen de cinc súper-classes de la classe arrel i la majoria de classes són més tancada que aquesta. Algunes de les principals branques en aquest arbre de jerarquia són particularment interessants. A l'arrel de la branca més llarga de l'Application kit és la classe NSResponder. Aquesta classe defineix una cadena de "contestadors", una llista ordenada d'objectes que responen a esdeveniments d'usuari. Quan un usuari fa clic amb el botó del ratolí o prem una tecla, un esdeveniment es genera i es passa a la cadena de "responedors" buscant un objecte que pugui respondre-hi. Qualsevol objecte que captura esdeveniment ha d'heretar a partir de la classe NSResponder. Les classes base Application Kit --NSApplication, NSWindow i NSView-- hereten de NSResponder. La segona branca més llarga de classes en l'Application Kit descendeix de NSCell. El més significatiu sobre aquest grup de classes és que són un copia borrosa de les classes que hereten de NSControl, que hereta de NSView. Per a aquests objectes d'interfície d'usuari que responen a accions d'usuari, l'Application Kit utilitza una arquitectura que divideix la feina entre els objectes de control i els objectes cel·la. Les classes NSControl i NSCell, i les seves sub-classes, defineixen un conjunt comú d'objectes d'interfície d'usuari com botons, barres, i navegadors que l'usuari pot manipular gràficament per controlar algun aspecte de la seva aplicació. Un objecte de control està associat amb un o més objectes cell que implementen els detalls de dibuixat i la captura d'esdeveniments. Per exemple, un botó conté ambdós, un objecte NSButton i un objecte NSButtonCell. La principal raó per aquesta separació de la funcionalitat és per permetre a les classes NSCell siguin refusades per classes NSControl. Per exemple, NSMatrix i NSTableView poden contenir múltiples objectes NSCell de diferents tipus. Una altra raó és una millor funcionalitat, perquè els objectes cell són molt més lleugers comparats amb els objectes control; un control amb quatre cel·les costen menys d'arrossegar que quatre controls fent exactament el mateix. Els controls i cel·les implementen un dels patrons de disseny més importants de l'Application Kit: el paradigma acció-destí. Una Cel·la pot mantenir informació que identifica el missatge que ha d'enviar-se a un objecte particular quan l'usuari fa clic (o un altre actuació) a la cel·la. Quan un usuari manipula un control (per exemple, al fer clic a sobre seu amb el punter del ratolí), el control extreu la informació demanada des de la seva cel·la i envia un missatge d'acció a l'objecte destí. L'acció-destí et permet donar significat a accions d'usuari especificant quin hauria de ser mètode invocat i l'objecte destí. Normalment utilitza l'Interface Builder per activar aquests destins i accions arrossegant des de l'objecte control a la teva aplicació o a un altre objecte. També pots activar destins i accions amb programació. Un altre patró de disseny important de l'Application Kit és la delegació. Molts objectes en una interfície d'usuari, com els camps de text i les vistes de taules, defineixen un delegat. Un delegat és un objecte que actua en compte d'ell o en coordinació amb, l'objecte delegat. Així poden separar-se la lògia de l'aplicació de la operació de la interfície d'usuari. Les següents seccions descriuen breument algunes de les capacitats i aspectes de l'arquitectura de l'Application Kit i les seves classes i protocols. Agrupa les classes d'acord amb els diagrames de la jerarquia de classes mostrats anteriorment. Classes Generals de la Interfície d'UsuariPer la total de la funcionalitat de la interfície d'usuari, l'Application Kit proporciona les classes següents:
Text i FontsLa classe NSTextFiels implementa un simple camp d'entrada de text editable, i la classe NSTextView proporciona més característiques d'edició per textos més extensos. NSTextView, una sub-classe de la classe abstracta NSText, defineix la interfície al sistema de text estès. NSTextView suporta text enriquit, adjunta (gràfics, fitxers i altres), gestió d'entrades i enllaçat amb claus i atributs de marcatge de text. NSTextView treballa amb la finestra Fonts i el menú Fonts, els estils de paràgraf i les regles, l'ajuda a Serveix i el porta-papers (clipboard). NSTextView també permet personalitzar a través de la delegació i les notificacions --difícilment necessitaràs una sub-classe de NSTextView. Tampoc crearàs instàncies programades de NSTextView, ni objectes de les paletes de l'Interface Builder, tal com NSTextField, NSForm i NSScrollView, que també contenen objectes NSTextView. També és possible una manipulació de text més creativa i més potent (com mostrant text en un cercle) utilitzant NSTextStorage, NSLayoutManager, NSTextContainer i classes semblants. Els sistema de text Cocoa també suporta llistes, taules i seleccions no contínues. Les classes NSFont i NSFontManager encapsulen gestionen famílies, mides i variacions de fonts. La classes NSFont defineix un objecte únic per cada font diferent; per eficiència, aquests objectes, que poden representar molta informació, estan compartits per tots els objectes en la teva aplicació. La classe NSFontPanel defineix la finestra de Fonts que es presenta a l'usuari. Gràfics i ColorsLes classes NSImage i NSImageRep encapsulen informació gràfica, permetent-te fàcilment i eficientment accés a imatges emmagatzemades en fitxers del disc i mostrades a la pantalla. Cada sub-classe NSImageRep coneix com dibuixar una imatge d'un tipus particular a partir d'unes dades. La classe NSImage proporciona múltiples representacions de la mateixa imatge, i també proporciona característiques com la memòria cau. Les capacitats d'imatge i dibuix de Cocoa estan integrades amb la framework Image Core. El color està suportat per les classes NSColor, NSColorSpace, NSColorPanel, NSColorList, NSColorPicker i NSColorWell. NSColor i NSColorSpace suporten un ric conjunt de formats i representacions de colors, incloent-hi els personalitzats. Les altres classes són majoritàriament classes interfície. Defineixen i presenten panells i vistes que permeten a l'usuari seleccionar i aplicar colors. Per exemple, l'usuari pot arrossegar colors des de la finestra Color a qualsevol zona de color. El protocol NSColorPicking et deixa estendre la finestra estàndard Color. Les classes NSGraphicsContext, NSBeziertPath i NSAffineTransform t'ajuden en el dibuixat de vectors i suport gràfic en transformacions com l'escalat, la rotació i el desplaçament. Impressió i FaxosLes classes NSPrinter, NSPrintPanel, NSPageLayout i NSPrintInfo treballen juntes per proporcionar solucions per imprimir i enviar faxos amb la informació que mostra la teva aplicació en les seves finestres i vistes. També pots crear una representació PDF d'uns NSView. Suport del Sistema de Fitxers i DocumentsUtilitza la classe NSFileWrapper per crear objectes que corresponguin als fitxers i directoris del disc. L'NSFileWrapper manté els continguts del fitxer a la memòria, per poder-se mostrar, canviar o transmetre a altres aplicacions. També proporcions una icona per arrossegar el fitxer i o representar-lo en una adjunció. O utilitza la classe NSFileManager en la framework Foundation per accedir i enumerar els continguts de fitxers i directoris. Les classes NSOpenPanel i NSSavePanel també proporcionen una interfície adient i familiar pel sistema de fitxers. Internacionalització i Suport d'Entrada de CaràctersSi una aplicació s'utilitza en més una part de mon, els seus recursos pot ser que calguin personalitzar-se, o localitzar, per diferents idiomes, països o regions culturals. Per exemple, una aplicació pot necessitar tenir diferents versions de cadenes de caràcters, icones, fitxers nib i ajuda contextual pel Japonès, Anglès, Francès i Alemany. Els fitxers de recursos específics per a un idioma en particular estan agrupats junts en un sub-directori del directori paquet (el directori amb l'extensió .lproj). Normalment pots activar la localització de fitxers de recursos utilitzant l'Interface Builder. Les classes NSInputServer i NSInputManager, conjuntament amb el protocol NSTextInput, donen accés a les teves aplicacions al sistema de gestió d'entrada de text. Aquest sistema interpreta pressions de tecles generats per diferents teclats internacionals i reparteix els caràcters de text apropiats o els esdeveniments de control de tecla als objectes de vista de text. (Normalment les classe text pacten amb aquestes classes si tu no ho fas). Serveis del Sistema OperatiuLes següents classes de l'Application Kit proporcionen suport a la teva aplicació:
Suport de L'Interface BuilderLa classe abstracta NSNibConnector i les seves dues sub-classes concretes, NSNibControlConnector i NSNibOutletConnector, representen connexions a l'Interface Builder. L'NSNibControlConnector gestiona una acció de connexió a l'Interface Builder i el NSNibOutletConnector gestiona un connexió outlet. Altres Frameworks amb la API CocoaCom a part d'una instal·lació estàndard Mac OS X, Apple inclou (a més de la Foundation i l'Application kit) varies frameworks que subministren interfícies programades amb Cocoa. (Poden subministrar-les Carbon o d'altres tipus d'interfícies de programació). Pots utilitzar aquestes frameworks secundàries per donar a la teva aplicació capacitats que siguin desitjables, o fins i tot essencials. Algunes frameworks secundaries notables incloses:
per Carles el 16/08/2005 - 19:15, actualitzat el 29/09/2005 - 12:19 | MacOSX | versió per a imprimir | entreu o registreu-vos per a enviar comentaris
|
apadrinamentsAjuda a fer crèixer la barra verda amb les teves donacions!
8% (20,0 de 256,0€) 61% (190,0 de 314,0€) 88% (1.011,0 de 1.144,5€) 0% (0,0 de 374,1€) 4% (50,0 de 1.235,0€) 47% (545,0 de 1.170,0€) 61% (700,0 de 1.155,0€) comesfa.orgel teu usuariopcionsQui està en líniaAra hi han 0 usuaris i 438 convidats connectats.
és populard'avui... |