Difference between revisions of "XIB"

From GNUstepWiki
Jump to navigation Jump to search
 
(7 intermediate revisions by the same user not shown)
Line 1: Line 1:
As of MacOS 10.3 Apple moved away from the binary encoded nib files, and towards the xml encoded XIB files, for their interface definitions. As of 10.9 (Xcode 5) Apple changed the xib file format totally. That format is not supported by Gorm currently.
+
As of MacOS 10.3 Apple moved away from the binary encoded nib files, and towards the xml encoded XIB files, for their interface definitions. As of 10.9 (Xcode 5) Apple changed the xib file format totally. Support of "XIB 5" files and above by Gorm is currently prepared.
  
 
== Xib file format ==
 
== Xib file format ==
  
The xib file format is actually quite easy to understand, it is the responsability of the object encodeing and decoding, it to insure that it's attributes are read correctly.
+
The xib file format is actually quite easy to understand as it is a human readable xml file. For a reference see [http://www.monobjc.net/xib-file-format.html XIB File Format Definition as understod by MonoObjc].
 
 
Here is a [http://www.multiupload.nl/B2A8HXDBI0 commented example] of a XIB file. For easy reading open it in a syntax highliting editor using XML highlighting.
 
 
 
To provide cross platform compatability, review the "XIB fields" section of the gnustep wiki article on the interface you intend to provide a codec for.  Also be sure to read the apple article on [[#See Also|KVC]].
 
 
 
=== See Also ===
 
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Overview.html Apple on KVC] - Encoded objects must be KVC complient
 
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i Apple on KVO] -KVO explains how to decode KVC objects.
 
*[http://www.monobjc.net/xib-file-format.html XIB File Format Definition as understod by MonoObjc]
 
  
 
== Gorm compatibility to Xcode ==
 
== Gorm compatibility to Xcode ==
  
As of version 1.2.24 Gorm is able to read xib and nib files from Xcode up to file version of Xcode 4 (to some extend). Gorm can save nib files, but this nib files currently cannot be read by Xcode 3 and above. This means for development of xibs/nibs you want to open using Gorm you need to use Xcode up to version 5 (Xcode 5 can save xibs in file version of Xcode 4). So you can use a Mac OS X version up to 10.10. macOS 10.11 and newer won't run Xcode 5 anymore.
+
As of version 1.2.24 Gorm is able to read xib and nib files from Xcode up to file version of Xcode 4 (to some extend). Gorm can save nib files, but these nib files currently cannot be read by Xcode 3 and above. This means for development of xibs/nibs you want to open using Gorm you need to use Xcode up to version 5 (Xcode 5 can save xibs in file version of Xcode 4). So you can use a Mac OS X version up to 10.10. macOS 10.11 and newer won't run Xcode 5 anymore.
  
 
Gorm did not yet follow up the changes of gnustep-gui described below.
 
Gorm did not yet follow up the changes of gnustep-gui described below.
  
== gnustep-gui/AppKit compatibility to Cocoa/macOS ==
+
== gnustep-gui/AppKit compatibility to Cocoa/AppKit regarding xib files ==
  
As of 2020-01-24 the code base at the [https://github.com/gnustep/libs-gui master branch] of gnustep-gui is able to interpret xib files created by a concurrent version of Xcode (Xcode 11 at the time writing this). Even Cocoa bindings (using KVC/KVO) will work to some extend. These changes are not yet released.
+
As of release [https://github.com/gnustep/libs-gui/releases/tag/gui-0_28_0 0.28.0] gnustep-gui is able to interpret xib files created by a recent version of Xcode (Xcode 11 at the time writing this). Even [https://developer.apple.com/library/archive/documentation/Cocoa/Conceptual/CocoaBindings/CocoaBindings.html Cocoa bindings] (using KVC/KVO) will work to some extend.
 +
 
 +
=== See Also ===
 +
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueCoding/Articles/Overview.html Apple on KVC]
 +
*[http://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html#//apple_ref/doc/uid/10000177i Apple on KVO]
  
 
== Using .nib and .gorm files in parallel ==
 
== Using .nib and .gorm files in parallel ==
  
 
You can use .nib and .gorm files in parallel to develop cross platform applications. GNUstep will load a .gorm file over a .nib file given the same name.
 
You can use .nib and .gorm files in parallel to develop cross platform applications. GNUstep will load a .gorm file over a .nib file given the same name.

Latest revision as of 18:41, 13 April 2020

As of MacOS 10.3 Apple moved away from the binary encoded nib files, and towards the xml encoded XIB files, for their interface definitions. As of 10.9 (Xcode 5) Apple changed the xib file format totally. Support of "XIB 5" files and above by Gorm is currently prepared.

Xib file format

The xib file format is actually quite easy to understand as it is a human readable xml file. For a reference see XIB File Format Definition as understod by MonoObjc.

Gorm compatibility to Xcode

As of version 1.2.24 Gorm is able to read xib and nib files from Xcode up to file version of Xcode 4 (to some extend). Gorm can save nib files, but these nib files currently cannot be read by Xcode 3 and above. This means for development of xibs/nibs you want to open using Gorm you need to use Xcode up to version 5 (Xcode 5 can save xibs in file version of Xcode 4). So you can use a Mac OS X version up to 10.10. macOS 10.11 and newer won't run Xcode 5 anymore.

Gorm did not yet follow up the changes of gnustep-gui described below.

gnustep-gui/AppKit compatibility to Cocoa/AppKit regarding xib files

As of release 0.28.0 gnustep-gui is able to interpret xib files created by a recent version of Xcode (Xcode 11 at the time writing this). Even Cocoa bindings (using KVC/KVO) will work to some extend.

See Also

Using .nib and .gorm files in parallel

You can use .nib and .gorm files in parallel to develop cross platform applications. GNUstep will load a .gorm file over a .nib file given the same name.