i den här artikeln vill jag prata lite om att arbeta med användargränssnitt i Elements for Cocoa.
som du vet är Cocoa compiler en inbyggd kompilator för Objective-C runtime, vilket innebär att den fungerar direkt med klasserna som tillhandahålls av Apples Cocoa och Cocoa Touch-ramar. Detta sträcker sig från lågnivåklasser som NSString
eller NSArray
till de visuella komponenterna på hög nivå baserade på NSView
(Mac) och UIView
(iOS).
ett vanligt sätt för Mac och (särskilt) iOS-appar att arbeta med användargränssnitt är att helt enkelt skapa nödvändiga vyer och kontroller som utgör en apps användargränssnitt från kod. Men förr eller senare, särskilt när du hanterar mer komplexa eller sofistikerade användargränssnitt, vill du använda den visuella designern. Detta fungerar på samma principer, oavsett om du använder Xcode/Objective-C eller Elements.
Mac-och iOS-gränssnitt är utformade i Interface Builder, som från och med version 4 av Xcode är direkt integrerad i Xcode IDE, och när du arbetar med element, det är där du kommer att arbeta med dina gränssnitt, få samma upplevelse och samma kraft och flexibilitet i UI-design som utvecklare som använder Objective-C får.
det finns två filformat som används för att designa användargränssnitt på Apples plattform – det äldre XIB-formatet och det nyare Storyboard-formatet. Principerna för att hantera dessa filer är likartade, och för enkelhetens skull hänvisar vi ofta till ”XIB-filer” på platser där både xib och Storyboards täcks.
- vad är XIB-filer?
- Hur skiljer sig Storyboard-filer från XIBs?
terminologi: XIB vs. NIB?
det här avsnittet talar om XIB-filer, men många av metoderna för att arbeta med XIB-filer nämner alla NIBs. Vad är det med det?
XIBs är ett nyare, XML-baserat format som används för användargränssnittet vid designtid. När du kompilerar din app konverteras XIB-filerna till binära NIB-filer för dig, och de binära versionerna av filerna är inbäddade i din app. Alla API: er som arbetar med dessa filer föregår det nya formatet (och vid körning fungerar bara med det äldre NIB-formatet), Det är därför alla metodnamn hänvisar till NIB, inte XIB. När du skickar runt namn behöver du aldrig (eller borde) ange filtillägget ändå, så det här är en skillnad som du i stor utsträckning kan ignorera (om du inte vill gå spelunking in i din .app bundle).