[Openmcl-devel] Nibs not being loaded with build-application
plkrueger at comcast.net
Wed Mar 5 22:01:25 PST 2014
On Mar 5, 2014, at 2:49 PM, R. Matthew Emerson <rme at clozure.com> wrote:
> On Mar 5, 2014, at 2:36 PM, Michael Minerva <minerva at agentsheets.com> wrote:
>> I have been having trouble loading nibs (when executing build-applicaiton) with the newest version of the trunk (1.10-dev-r16040M-trunk). Just now, I tried to make the CurrentConverter example (bundled with CCL) and when I run the following command on the newest dev version, none of the nibs are loaded, I.E. it shows the CCL menu instead of the CurrencyConverter menu and the CurrencyConversion window does not load.
>> (ccl::build-application :name "CurrencyConverter"
>> :main-nib-name "CurrencyConverter"
>> :directory "/Users/Mike/Desktop/"
>> :nibfiles '(#P"/Users/Mike/ccl-dev-march-3-2014/examples/cocoa/currency-converter/CurrencyConverter.nib"))
>> I tried the same experiment on CCL1.9 release and the CurrencyConverter is created with all the correct nibs being loaded. Can anyone else confirm this issue? I am running OSX 10.8.4.
> As I'm sure many people know, Interface Builder has been integrated into Xcode, and is no longer a stand-alone application. In some ways, I suppose this is more convenient for the Objective-C programmer, because now IB can look at your Objective-C source files and figure out what class names, actions, and outlets are available.
> Unfortunately for users of other programming languages, Objective-C source files appear to be the only way to tell IB about what class names, actions, and outlets are available. I'm sure I've whined about this before: the upshot is that it's all but impossible for us to use IB now.
> Thus, I've been slowly working on converting the IDE not to use nib files at all. The Info.plist file no longer contains an NSMainNibFile key (and the IDE code never looks for it to load it in any case), so that's what is causing the example to break.
For anyone who might be interested, my contrib code contains extensive support for building nib-less stand-alone apps. I have a very lisp-friendly interface to apple's constraint language that you can use to define windows of all sorts without resorting to nibs as well as a pretty extensive array of menu building functions, loads of conversion between Objective-C and Lisp data types using a single coerce-obj method, lots of lisp-specific views, a pretty useful lisp controller and much more. It's all documented with multiple examples in .../ccl/contrib/cocoa-ide/krueger/InterfaceProjects/Documentation/UserInterfaceTutorial.pdf. I also created a methodology and support code/interfaces for building and testing stand-alone apps both within the CCL IDE and as completely stand-alone apps. That's documented in the same documentation directory in "CCL Cocoa Developer Tools Tutorial.pdf".
It also sounds like I modified some of the same CCL code that Matthew did in order to make everything work at startup time without a main nib. Mine will still try to load a NSMainNibFile if requested (although I don't do that for my own stand-alone apps and it's not an error if none is provided), so perhaps I'll look at the new versions of CCL and modify mine to be more in line with what they've done.
More information about the Openmcl-devel