NSWindow Alloc
   HOME

TheInfoList



OR:

AppKit (formally Application Kit) is a
graphical user interface A graphical user interface, or GUI, is a form of user interface that allows user (computing), users to human–computer interaction, interact with electronic devices through Graphics, graphical icon (computing), icons and visual indicators such ...
toolkit A toolkit is an assembly of tools; set of basic building units for user interfaces. The word toolkit may refer to: * Abstract Window Toolkit * Accessibility Toolkit * Adventure Game Toolkit * B-Toolkit * Cheminformatics toolkits * Dojo Toolk ...
. It initially served as the UI framework for
NeXTSTEP NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT, founded by Steve Jobs, in the late 1980s and early 1990s and was initially used for its ...
. Along with
Foundation Foundation(s) or The Foundation(s) may refer to: Common uses * Foundation (cosmetics), a skin-coloured makeup cream applied to the face * Foundation (engineering), the element of a structure which connects it to the ground, and transfers loads f ...
and
Display PostScript Display PostScript (or DPS) is a 2D graphics engine system for computers that uses the PostScript (PS) imaging model and language to generate on-screen graphics. PS was originally developed for computer printing, to which DPS adds a number of fe ...
, it became one of the core parts of the
OpenStep OpenStep is an object-oriented application programming interface (API) specification developed by NeXT. It provides a framework for building graphical user interfaces (GUIs) and developing software applications. OpenStep was designed to be plat ...
specification of APIs. Later, AppKit and Foundation became part of
Cocoa Cocoa may refer to: Chocolate * Chocolate * ''Theobroma cacao'', the cocoa tree * Cocoa bean, seed of ''Theobroma cacao'' * Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
, the
Objective-C Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was ...
API framework of
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
.
GNUstep GNUstep is a free software implementation of the Cocoa (formerly OpenStep) Objective-C frameworks, widget toolkit, and application development tools for Unix-like operating systems and Microsoft Windows. It is part of the GNU Project. GNUst ...
,
GNU GNU ( ) is an extensive collection of free software (394 packages ), which can be used as an operating system or can be used in parts with other operating systems. The use of the completed GNU tools led to the family of operating systems popu ...
's implementation of the OpenStep/Cocoa API, also contains an implementation of the AppKit API. AppKit comprises a collection of
Objective-C Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was ...
classes and
protocols Protocol may refer to: Sociology and politics * Protocol (politics), a formal agreement between nation states * Protocol (diplomacy), the etiquette of diplomacy and affairs of state * Etiquette, a code of personal behavior Science and technology ...
that can be used to build an application in OpenStep/Cocoa. These classes can also be used in
Swift Swift or SWIFT most commonly refers to: * SWIFT, an international organization facilitating transactions between banks ** SWIFT code * Swift (programming language) * Swift (bird), a family of birds It may also refer to: Organizations * SWIF ...
through its Objective-C bridge.
Xcode Xcode is a suite of developer tools for building apps on Apple devices. It includes an integrated development environment (IDE) of the same name for macOS, used to develop software for macOS, iOS, iPadOS, watchOS, tvOS, and visionOS. It w ...
has built-in functionality for developing a Cocoa application using AppKit, including the ability to visually design user interfaces with
Interface Builder Interface Builder is a software development application for Apple's macOS operating system. It is part of Xcode (formerly Project Builder), the Apple Developer developer's toolset. Interface Builder allows Cocoa and Carbon developers to crea ...
. It relies heavily on patterns like
reference types In certain computer programming languages, data types are classified as either value types or reference types, where reference types are always implicitly accessed via references, whereas value type variables directly contain the values themselves. ...
,
delegation Delegation is the process of distributing and entrusting work to another person.Schermerhorn, J., Davidson, P., Poole, D., Woods, P., Simon, A., & McBarron, E. (2017). ''Management'' (6th ed., pp. 282–286). Brisbane: John Wiley & Sons Australia. ...
,
notifications Notification may refer to: *Notification (Holy See), an announcement by a department of the Roman Curia *Casualty notification, the process of notifying relatives of people who have been killed or seriously injured *Death notification, the proces ...
, target–action, and
model–view–controller Model–view–controller (MVC) is a software architectural pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements. These elements are: * the model, the internal representat ...
. A sign of the NeXTSTEP heritage, AppKit's classes and protocols still use the "NS" prefix. Most of the applications bundled with macOS—for example, the Finder,
TextEdit TextEdit is an open-source software, open-source word processor and text editor, first featured in NeXT's NeXTSTEP and OPENSTEP. It is now distributed with macOS since Apple Inc.'s acquisition of NeXT, and available as a GNUstep application fo ...
,
Calendar A calendar is a system of organizing days. This is done by giving names to periods of time, typically days, weeks, months and years. A calendar date, date is the designation of a single and specific day within such a system. A calendar is ...
, and Preview—use AppKit to provide their user interface.
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
,
iOS Ios, Io or Nio (, ; ; locally Nios, Νιός) is a Greek island in the Cyclades group in the Aegean Sea. Ios is a hilly island with cliffs down to the sea on most sides. It is situated halfway between Naxos and Santorini. It is about long an ...
,
iPadOS iPadOS is a mobile operating system developed by Apple for its iPad line of tablet computers. It was given a name distinct from iOS, the operating system used by Apple's iPhones to reflect the diverging features of the two product lines, suc ...
, and
tvOS tvOS (formerly Apple TV Software) is an operating system developed by Apple for the Apple TV, a digital media player. In the first-generation Apple TV, Apple TV Software was based on Mac OS X. The software for the second-generation and later ...
also support other UI frameworks, including
UIKit UIKit is an application development environment and graphical user interface toolkit from Apple Inc. used to build apps for the iOS, iPadOS, watchOS, tvOS, and visionOS operating systems. UIKit provides an abstraction layer of iOS, the operati ...
, which is derived from AppKit and uses many similar structures, and
SwiftUI SwiftUI is a declarative framework for building user interfaces for iOS, iPadOS, watchOS, tvOS, visionOS and macOS, developed by Apple Inc. for the Swift programming language. Overview SwiftUI is declarative, contrasting with the imperati ...
, a
Swift Swift or SWIFT most commonly refers to: * SWIFT, an international organization facilitating transactions between banks ** SWIFT code * Swift (programming language) * Swift (bird), a family of birds It may also refer to: Organizations * SWIF ...
-only declarative UI framework. Prior to
macOS Catalina macOS Catalina (version 10.15) is the sixteenth software versioning, major release of macOS, Apple Inc.'s desktop operating system for Macintosh computers. It is the successor to macOS Mojave and was announced at WWDC 2019 on June 3, 2019 and ...
, macOS also supported
Carbon Carbon () is a chemical element; it has chemical symbol, symbol C and atomic number 6. It is nonmetallic and tetravalence, tetravalent—meaning that its atoms are able to form up to four covalent bonds due to its valence shell exhibiting 4 ...
, a UI framework derived from the
Macintosh Toolbox The Macintosh Toolbox implements many of the high-level features of the Classic Mac OS, including a set of application programming interfaces for software development on the platform. The Toolbox consists of a number of "managers," software compone ...
.


Classes

Of the more than 170 classes included in the Application Kit, the following classes form the core:AppKit Framework Reference
— Apple Developer *NSApplication: a singleton object that represents the application as a whole and tracks its windows and other global state *NSWindow: an object representing a window on screen, it holds a hierarchy of views *NSView: an object representing a rectangular region; it may draw UI content of its own (using drawing engines like
Quartz Quartz is a hard, crystalline mineral composed of silica (silicon dioxide). The Atom, atoms are linked in a continuous framework of SiO4 silicon–oxygen Tetrahedral molecular geometry, tetrahedra, with each oxygen being shared between two tet ...
,
Core Animation Core Animation is an animation graphics compositing framework used by macOS (Mac OS X Leopard and later), iOS, watchOS, and tvOS to produce animated user interfaces. Overview Core Animation provides a way for developers to produce animated user ...
, and
Metal A metal () is a material that, when polished or fractured, shows a lustrous appearance, and conducts electrical resistivity and conductivity, electricity and thermal conductivity, heat relatively well. These properties are all associated wit ...
), and it may also hold a subtree of other views *NSResponder: an object that can respond to events during the application's lifetime; NSApplication, NSWindow, and NSView are all subclasses of NSResponder *NSDocument: an object representing a document saved on disk that manages its display in a window *NSController: an
abstract class In object-oriented programming, a class defines the shared aspects of objects created from the class. The capabilities of a class differ between programming languages, but generally the shared aspects consist of state ( variables) and behavior ( ...
implementing some functionality for a controller, mediating between views and model objects


See also

*
macOS macOS, previously OS X and originally Mac OS X, is a Unix, Unix-based operating system developed and marketed by Apple Inc., Apple since 2001. It is the current operating system for Apple's Mac (computer), Mac computers. With ...
*
Foundation Foundation(s) or The Foundation(s) may refer to: Common uses * Foundation (cosmetics), a skin-coloured makeup cream applied to the face * Foundation (engineering), the element of a structure which connects it to the ground, and transfers loads f ...
*
Objective-C Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was ...
*
Swift (programming language) Swift is a High-level programming language, high-level general-purpose programming language, general-purpose, multi-paradigm programming language, multi-paradigm, compiled language, compiled programming language created by Chris Lattner in 2010 ...
*
UIKit UIKit is an application development environment and graphical user interface toolkit from Apple Inc. used to build apps for the iOS, iPadOS, watchOS, tvOS, and visionOS operating systems. UIKit provides an abstraction layer of iOS, the operati ...
*
Cocoa Cocoa may refer to: Chocolate * Chocolate * ''Theobroma cacao'', the cocoa tree * Cocoa bean, seed of ''Theobroma cacao'' * Chocolate liquor, or cocoa liquor, pure, liquid chocolate extracted from the cocoa bean, including both cocoa butter and ...
*
NeXTSTEP NeXTSTEP is a discontinued object-oriented, multitasking operating system based on the Mach kernel and the UNIX-derived BSD. It was developed by NeXT, founded by Steve Jobs, in the late 1980s and early 1990s and was initially used for its ...
*
OPENSTEP OpenStep is an object-oriented application programming interface (API) specification developed by NeXT. It provides a framework for building graphical user interfaces (GUIs) and developing software applications. OpenStep was designed to be plat ...


References


External links


AppKit classes
in OpenStep specification
AppKit
in Apple Developer Documentation {{macOS NeXT MacOS Apple Inc. developed frameworks Application programming interfaces