TweetFollow Us on Twitter

Interface Builder Tips and Tricks

Volume Number: 19 (2003)
Issue Number: 10
Column Tag: Programming

Mac OS X Programming Secrets

Interface Builder Tips and Tricks

by Scott Knaster

When you're programming with Cocoa, you spend plenty of time in Interface Builder, instantiating objects, positioning things just right in windows, and making connections. In this month's column, we're going to shine the light of day on a few valuable tips and shortcuts for making yourself more productive when using Interface Builder.

Designing for Success

Most of the intricate work in Interface Builder is in the design window, which is where you add objects from palettes, lay them out, resize them, and so on. In this section, we'll discuss some tips for use in design windows.

The first trick is useful for figuring out precise distances between objects while looking at them in the design window. If you select an object, then hold down the Option key, you'll see the exact distances from the borders of the object to the edges of the window (see Figure 1).


Figure 1. Hold down Option to see distances.

But wait, that's not all. By moving the mouse pointer while holding down Option, you can have Interface Builder show you the distance between objects, rather than just the distance to the window edges. In Figure 2, the pointer is on the static text object, and the window shows the distances from the selection to each edge of that object.


Figure 2. Hold down Option to see distances.

You can use another Interface Builder feature to make objects automatically resize or reposition themselves when you change the size of their enclosing window. For example, let's say you want to preserve the proportional distance between the three buttons in the window above: if you widen the window, you want the distance between the buttons to increase. To make this happen, you can create springs between the objects. To do this, select each object in turn, open the size inspector, and click that line that you want to become a spring (a proportional relationship that changes automatically when you resize the window). Figure 3 shows what this looks like for the "Stop" button in the window above: we've clicked on its connection lines to make them into springs. We'll do the same for all 3 buttons.

Now, when we resize the window, if we hold down the Control key, the springs will cause the distances between objects to change proportionally. If we want the springs to be ignored, we can just resize without holding down Control.


Figure 3. Stop button has springs on its left and right.

Speaking of the size inspector, it's even smarter than you might have realized. You can type math expressions into the coordinate fields and let Interface Builder evaluate them for you. For example, if you want to add 32 pixels to an object's width, you can just click in the w field, select after the current value, then type "+32" and press return. Neato! Apple even provides code to help you implement this trick in your own fields. Take a look at /Developer/Examples/InterfaceBuilder/BusyPalette for details.

Another fun trick you can use with design windows is to see all the rectangles that Interface Builder uses to determine distances between objects. By using the Layout --> Show Layout Rectangles menu item, or just pressing command-L, you can see all the layout rectangles at once, as shown in Figure 4.


Figure 4. Design window with all layout rectangles shown.

Interface Builder tips aren't all about layout. For example, there's a quick way to set the tab order for objects in the window. You'll want to do this to allow users to tab from one text field to the next. The tab order starts with the initial first responder, and continues from there by following each object's nextKeyView field.

To start setting the order, select the object you want to be the initial first responder and choose Layout --> Keyboard Navigation --> Make Initial First Responder. Then, to set the tab order, choose Layout --> Keyboard Navigation --> Show Keyboard Check, Control-drag from one object to the next, then click Connect in the connection inspector. That will set the tab connection between the objects. Note that when you have keyboard check turned on, the word tab appears at the bottom left of the window. That reminds you that you can press tab to test the tab order.

Cool Stuff in Other Windows, Too

Not all the neat tricks are in the design window - here are a couple you can use in the document window. If you click the tiny control on the right side of the window, the object instances are displayed in an outline view, with the number of connections, both into and out of the object. If you click on one of these numbers, the connections appear in the window, as you can see in Figure 5.


Figure 5. Outline view shows connections to an object.

You can use this view to delete connections between objects. If you hold down Control and point at a line that connects two objects, the pointer changes to a tiny pair of scissors, and clicking (you guessed it) cuts the connection.

If you just want to learn more about the connected objects, click on the name of the connected field, such as menu or _panel in Figure 5. The connected objects will appear on the screen with a line between them.

There's More (Always)

You can find more fun and timesaving tips like these by reading the informative FAQ that comes with Interface Builder. Get to the FAQ by choosing FAQ in Interface Builder's Help menu. There's even a sense of humor in the FAQ: in the section on modifier keys, right after the descriptions of what happens if you press Command, Option, and Control, the FAQ tells you that you can use the Left Pedal to disengage the clutch. Cool.


Scott Knaster has been writing about Macs for as long as there have been Macs. Scott's books How To Write Macintosh Software and Macintosh Programming Secrets were required reading for Mac programmers for more than a decade. Scott wrote developer books for General Magic and worked on Mac software for Microsoft. Scott's books have been translated into Japanese and Pascal. Scott has every issue of Mad magazine, which explains a lot.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Catch Battleplans on Google Play from Ju...
Real-time strategy title Battleplans is due for release on Google Play on June 30th, following its release for iOS systems last month. With its simple interface and pretty graphics, the crowd-pleaser brings a formerly overlooked genre out for the... | Read more »
iDoyle: The interactive Adventures of Sh...
iDoyle: The interactive Adventures of Sherlock Holmes - A Scandal in Bohemia 1.0 Device: iOS Universal Category: Books Price: $1.99, Version: 1.0 (iTunes) Description: Special Release Price $1.99 (Normally $3.99) | Read more »
Five popular free apps to help you slim...
Thanks to retail and advertising, we're used to thinking one season ahead. Here we are just a week into the summer and we're conditioned to start thinking about the fall. [Read more] | Read more »
How to ride longer and tame more animals...
It's hard to accurately describe Rodeo Stampede to people who haven't seen it yet. It's like if someone took Crossy Roadand Disco Zoo and put them in a blender, yet with a unique game mechanic that's still simple and fun for anyone. [Read more] | Read more »
Teeny Titans - A Teen Titans Go! Figure...
Teeny Titans - A Teen Titans Go! Figure Battling Game 1.0.0 Device: iOS Universal Category: Games Price: $3.99, Version: 1.0.0 (iTunes) Description: Teeny Titans, GO! Join Robin for a figure battling RPG of epic proportions! TEENY... | Read more »
NinjAwesome: Tips and tricks to be a mor...
Sorry about that headline, but I'm going to go ahead and assume that GameResort would not have named its game NinjAwesome without expecting some of that. It is, in fact, pretty awesome the way it combines an endless runner and old school arcade... | Read more »
Into Mirror (Games)
Into Mirror 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: "Is all that we see or seem, but a dream within a dream?"- Edgar Allan Poe New game by Lemon Jam Studio, the team behind Pursuit... | Read more »
Perchang (Games)
Perchang 1.0 Device: iOS Universal Category: Games Price: $1.99, Version: 1.0 (iTunes) Description: Welcome to Perchang! A test of skill and puzzle solving across 60 stunning levels. | Read more »
BusyCal (Productivity)
BusyCal 3.0 Device: iOS Universal Category: Productivity Price: $4.99, Version: 3.0 (iTunes) Description: BusyCal is a powerful, flexible calendar app for managing busy schedules, events and to dos. | Read more »
Hyperburner (Games)
Hyperburner 1.0 Device: iOS Universal Category: Games Price: $2.99, Version: 1.0 (iTunes) Description: Hyperburner is a high-speed space flier set in a distant colonial solar system. Take your ship through increasingly dangerous... | Read more »

Price Scanner via MacPrices.net

15-inch Retina MacBook Pros on sale for $200-...
B&H Photo has 15″ Retina MacBook Pros on sale for up to $210 off MSRP. Shipping is free, and B&H charges NY tax only: - 15″ 2.2GHz Retina MacBook Pro: $1799.99 $200 off MSRP - 15″ 2.5GHz... Read more
Mac minis on sale for up to $100 off MSRP
B&H Photo has Mac minis on sale for up to $100 off MSRP including free shipping plus NY sales tax only: - 1.4GHz Mac mini: $449 $50 off MSRP - 2.6GHz Mac mini: $649 $50 off MSRP - 2.8GHz Mac mini... Read more
Clearance 2015 13-inch MacBook Airs available...
B&H Photo has clearance 2015 13″ MacBook Airs available for $300 off original MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 1.6GHz/4GB/128GB MacBook Air (MJVE2LL/A): $799.... Read more
Apple refurbished Mac minis available for up...
Apple has Certified Refurbished Mac minis available starting at $419. Apple’s one-year warranty is included with each mini, and shipping is free: - 1.4GHz Mac mini: $419 $80 off MSRP - 2.6GHz Mac... Read more
ABBYY TextGrabber: 1,000,000 Installs in 5 Da...
ABBYY, an international OCR technologies provider, has announced that their image-to-text application TextGrabber, got installed 1,000,000 times in just five days while being featured by the App... Read more
New SkinIt Waterproof Case For iPhone 6
With its impact and waterproof design, the Skinit Waterproof case provides security and protection to guarantee your phone will get you through even the most demanding outdoor conditions. The impact-... Read more
iMacs on sale for up to $150 off MSRP
B&H Photo has 21″ and 27″ iMacs on sale for up to $150 off MSRP including free shipping plus NY sales tax only: - 27″ 3.3GHz iMac 5K: $2181.11 $118 off MSRP - 27″ 3.2GHz/1TB Fusion iMac 5K: $1949... Read more
12-inch 1.1GHz Retina MacBooks on sale for $5...
B&H Photo has 2016 12″ 1.1GHz/256GB Retina MacBooks on sale for up to $50 off MSRP. Shipping is free, and B&H charges NY tax only: - 12″ 1.1GHz Space Gray Retina MacBook: $1249 $50 off MSRP... Read more
WWDC Announcements Revisited Still Underwhelm...
I was disappointed that no new MacBook hardware was announced at this year’s all-software World Wide Developer’s Conference. Not even a hint about what’s in the development pipeline. Of course, we... Read more
Twelve South Compass 2 iPad Stand Now Availab...
Twelve South has updated its most popular iPad stand, Compass 2, with the introduction of two new colors — Gold and Rose Gold. These new color options n perfectly complement the new Rose Gold iPad... Read more

Jobs Board

*Apple* Solutions Consultant - APPLE (United...
Job Summary As an Apple Solutions Consultant, you'll be the link between our future customers and our products. You'll showcase your entrepreneurial spirit as you Read more
*Apple* Retail - Multiple Positions - Apple,...
Job Description: Sales Specialist - Retail Customer Service and Sales Transform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Retail - Multiple Positions, Towson...
Job Description:SalesSpecialist - Retail Customer Service and SalesTransform Apple Store visitors into loyal Apple customers. When customers enter the store, Read more
*Apple* Professional Learning Specialist - A...
Job Summary The Apple Professional Learning Specialist is a full-time position for one year with Apple in the Phoenix, AZ area. This position requires a high Read more
Executive Director, Big *Apple* Performing...
Big Apple Performing Arts® (BAPA) is looking for a dynamic new Executive Director to lead the organization through its next phase of growth—an exciting opportunity Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.