Question

I have refactored some UIView sub-classes into a static library. However, when using Interface Builder to create view components for a project that uses the static library I find that it is unaware of the library classes. What do I need to do to make the class interfaces visible to Interface Builder?

Update: The correct answer refers to dragging the headers into the 'XIB browser'. The '.h' files can be dragged from a finder window to the window area identified in this image:

alt text http://img211.imageshack.us/img211/1221/xibbrowser.png

Was it helpful?

Solution

Try dragging the static library into your xib browser in Interface Builder. I haven't tried this with a static library, but the concept is the same. When you drag header files into IB, you can access those classes.

OTHER TIPS

LexH, try linking with the -ObjC flag when building your static library. That worked for me... for about a year :-) I found this post as the problem has returned with a fresh OSX install and an upgrade in xcode. But it worked in XCode 3.1.2.

  • David

Add the same problem as LexH. It worked only when I called a dummy class method. The problem was that I did not add my static library to the "link binary with libraries" under target. Strangely everything else worked.

I followed this guide to link with my static lib Create static lib

I had the same problem. Dragging the library or headers to XIB Browser didn't work. Read Class Files didn't work. So I called:

[MyLibraryClass version];    // Substitute your class name for "MyLibraryClass".

This worked. version is a class method of NSObject, so all subclasses of NSObject inherit it.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top