Instance Method

zoom:

This action method toggles the size and location of the window between its standard state (provided by the application as the “best” size to display the window’s data) and its user state (a new size and location the user may have set by moving or resizing the window).

Declaration

- (void)zoom:(id)sender;

Parameters

sender

The object sending the message.

Discussion

For more information on the standard and user states, see windowWillUseStandardFrame:defaultFrame:.

The zoom: method is typically invoked after a user clicks the window’s zoom box but may also be invoked programmatically from the performZoom: method. It performs the following steps:

  1. Invokes the windowWillUseStandardFrame:defaultFrame: method, if the delegate or the window class implements it, to obtain a “best fit” frame for the window. If neither the delegate nor the window class implements the method, uses a default frame that nearly fills the current screen, which is defined to be the screen containing the largest part of the window’s current frame.

  2. Adjusts the resulting frame, if necessary, to fit on the current screen.

  3. Compares the resulting frame to the current frame to determine whether the window’s standard frame is currently displayed. If the current frame is within a few pixels of the standard frame in size and location, it is considered a match.

  4. Determines a new frame. If the window is currently in the standard state, the new frame represents the user state, saved during a previous zoom. If the window is currently in the user state, the new frame represents the standard state, computed in step 1 above. If there is no saved user state because there has been no previous zoom, the size and location of the window do not change.

  5. Determines whether the window currently allows zooming. By default, zooming is allowed. If the window’s delegate implements the windowShouldZoom:toFrame: method, zoom: invokes that method. If the delegate doesn’t implement the method but the window does, zoom: invokes the window’s version. windowShouldZoom:toFrame: returns NO if zooming is not currently allowed.

  6. If the window currently allows zooming, sets the new frame.

See Also

Sizing Windows

frame

The window’s frame rectangle in screen coordinates, including the title bar.

- setFrameOrigin:

Positions the bottom-left corner of the window’s frame rectangle at a given point in screen coordinates.

- setFrameTopLeftPoint:

Positions the top-left corner of the window’s frame rectangle at a given point in screen coordinates.

- constrainFrameRect:toScreen:

Modifies and returns a frame rectangle so that its top edge lies on a specific screen.

- cascadeTopLeftFromPoint:

Positions the window’s top-left to a given point.

- setFrame:display:

Sets the origin and size of the window’s frame rectangle according to a given frame rectangle, thereby setting its position and size onscreen.

- setFrame:display:animate:

Sets the origin and size of the window’s frame rectangle, with optional animation, according to a given frame rectangle, thereby setting its position and size onscreen.

- animationResizeTime:

Specifies the duration of a smooth frame-size change.

aspectRatio

The window’s aspect ratio, which constrains the size of its frame rectangle to integral multiples of this ratio when the user resizes it.

minSize

The minimum size to which the window’s frame (including its title bar) can be sized.

maxSize

The maximum size to which the window’s frame (including its title bar) can be sized.

zoomed

A Boolean value that indicates whether the window is in a zoomed state.

- performZoom:

This action method simulates the user clicking the zoom box by momentarily highlighting the button and then zooming the window.

resizeFlags

The flags field of the event record for the mouse-down event that initiated the resizing session.

showsResizeIndicator

A Boolean value that indicates whether the window’s resize indicator is visible.

Deprecated
resizeIncrements

The window’s resizing increments.

preservesContentDuringLiveResize

A Boolean value that indicates whether the window tries to optimize user-initiated resize operations by preserving the content of views that have not changed.

inLiveResize

A Boolean value that indicates whether the window is being resized by the user.