Timers
Modern applications are filled with animation. Press a mouse in the middle of a word-processor window and drag the mouse cursor up, off the window: the window scrolls until you release it. Press the mouse on the window’s down arrow: the window scrolls in the other direction. Clocks have animated hands. Even web browsers have animated icons that tell you they are fetching the next page.
An animation basically consists of three things:
An event that is repeated, perhaps in different locations
A frequency with which the event is repeated
A condition that causes the repetition to stop
Let’s look back at our dragging example and see how it complies with these requirements. When you drag the mouse beyond the top of a word-processor window or click the down arrow, the word processor needs to move down in the document, redraw the window, wait to see if you have released the mouse, and then repeat the process. This is exactly the procedure that programs like Microsoft Word for Windows follow, and as a result, they have an annoying problem: as computers have gotten faster, these programs have scrolled faster. That was fine when PC users were moving from a 100-MHz to a 200-MHz Pentium processor. But now that PC users have 1.4-GHz Pentium processors, Word scrolls so fast that it’s difficult to control.
Cocoa takes a different approach to scrolling. When you drag the mouse off the window or press the mouse on the down arrow, the Application Kit creates a timer to manage the scrolling. The ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access