Up

# NSView

### Authors

Scott Christley (`scottc@net-community.com`)
Felipe A. Rodriguez (`far@ix.netcom.com`)
Ovidiu Predescu (`ovidiu@net-community.com`)
Richard Frith-Macdonald (`richard@brainstorm.co.uk`)

> The view class which encapsulates all drawing functionality

Copyright: (C) (C) 1996 Free Software Foundation, Inc.

### Contents -

1. NSView
2. Software documentation for the NSView(PrivateMethods) category

# NSView

NSView is an abstract class which provides facilities for drawing in a window and receiving events. It is the superclass of many of the visual elements of the GUI.

In order to display itself, a view must be placed in a window (represented by an NSWindow object). Within the window is a hierarchy of NSViews, headed by the window's content view. Every other view in a window is a descendant of this view.

Subclasses can override -drawRect: in order to implement their appearance. Other methods of NSView and NSResponder can also be overridden to handle user generated events.

## NSView : NSResponder

> Declared in:
>   AppKit/NSView.h

Availability: OpenStep
Description forthcoming.

Instance Variables
Method summary

- -_invalidateCoordinates
- -_matrixFromWindow
- -_matrixToWindow
- -_rebuildCoordinates
- +defaultFocusRingType
- +defaultMenu
- +focusView
- -acceptsFirstMouse:
- -addCursorRect:cursor:
- -addSubview:
- -addSubview:positioned:relativeTo:
- -addToPageSetup
- -addToolTipRect:owner:userData:
- -addTrackingRect:owner:userData:assumeInside:
- -adjustPageHeightNew:top:bottom:limit:
- -adjustPageWidthNew:left:right:limit:
- -adjustScroll:
- -allocateGState
- -ancestorSharedWithView:
- -autoresizesSubviews
- -autoresizingMask
- -autoscroll:
- -beginDocument
- -beginPage:label:bBox:fonts:
- -beginPageInRect:atPlacement:
- -beginPageSetupRect:placement:
- -beginPrologueBBox:creationDate:createdBy:fonts:forWhom:pages:title:
- -beginSetup
- -beginTrailer
- -bounds
- -boundsRotation
- -canBecomeKeyView
- -canDraw
- -centerScanRect:
- -convertPoint:fromView:
- -convertPoint:toView:
- -convertRect:fromView:
- -convertRect:toView:
- -convertSize:fromView:
- -convertSize:toView:
- -dataWithEPSInsideRect:
- -dataWithPDFInsideRect:
- -didAddSubview:
- -discardCursorRects
- -display
- -displayIfNeeded
- -displayIfNeededIgnoringOpacity
- -displayIfNeededInRect:
- -displayIfNeededInRectIgnoringOpacity:
- -displayRect:
- -displayRectIgnoringOpacity:
- -dragFile:fromRect:slideBack:event:
- -dragImage:at:offset:event:pasteboard:source:slideBack:
- -dragPromisedFilesOfTypes:fromRect:source:slideBack:event:
- -drawPageBorderWithSize:
- -drawRect:
- -drawSheetBorderWithSize:
- -enclosingScrollView
- -endDocument
- -endHeaderComments
- -endPage
- -endPageSetup
- -endPrologue
- -endSetup
- -endTrailer
- -fax:
- -focusRingType
- -frame
- -frameRotation
- -gState
- -getRectsBeingDrawn:count:
- -getRectsExposedDuringLiveResize:count:
- -heightAdjustLimit
- -hitTest:
- -inLiveResize
- -initWithFrame:
- -isDescendantOf:
- -isFlipped
- -isHidden
- -isHiddenOrHasHiddenAncestor
- -isOpaque
- -isRotatedFromBase
- -isRotatedOrScaledFromBase
- -knowsPageRange:
- -knowsPagesFirst:last:
- -locationOfPrintRect:
- -lockFocus
- -lockFocusIfCanDraw
- -lockFocusIfCanDrawInContext:
- -lockFocusInRect:
- -menuForEvent:
- -mouse:inRect:
- -mouseDownCanMoveWindow
- -needsDisplay
- -needsPanelToBecomeKey
- -needsToDrawRect:
- -nextKeyView
- -nextValidKeyView
- -opaqueAncestor
- -pageFooter
- -pageHeader
- -performKeyEquivalent:
- -performMnemonic:
- -postsBoundsChangedNotifications
- -postsFrameChangedNotifications
- -preservesContentDuringLiveResize
- -previousKeyView
- -previousValidKeyView
- -print:
- -printJobTitle
- -rectForPage:
- -rectPreservedDuringLiveResize
- -reflectScrolledClipView:
- -registerForDraggedTypes:
- -releaseGState
- -removeAllToolTips
- -removeCursorRect:cursor:
- -removeFromSuperview
- -removeFromSuperviewWithoutNeedingDisplay
- -removeSubview:
- -removeToolTip:
- -removeTrackingRect:
- -renewGState
- -replaceSubview:with:
- -resetCursorRects
- -resizeSubviewsWithOldSize:
- -resizeWithOldSuperviewSize:
- -rotateByAngle:
- -scaleUnitSquareToSize:
- -scrollClipView:toPoint:
- -scrollPoint:
- -scrollRect:by:
- -scrollRectToVisible:
- -setAutoresizesSubviews:
- -setAutoresizingMask:
- -setBounds:
- -setBoundsOrigin:
- -setBoundsRotation:
- -setBoundsSize:
- -setFocusRingType:
- -setFrame:
- -setFrameOrigin:
- -setFrameRotation:
- -setFrameSize:
- -setHidden:
- -setKeyboardFocusRingNeedsDisplayInRect:
- -setNeedsDisplay:
- -setNeedsDisplayInRect:
- -setNextKeyView:
- -setPostsBoundsChangedNotifications:
- -setPostsFrameChangedNotifications:
- -setPreviousKeyView:
- -setToolTip:
- -setUpGState
- -shouldDelayWindowOrderingForEvent:
- -shouldDrawColor
- -sortSubviewsUsingFunction:context:
- -subviews
- -superview
- -tag
- -toolTip
- -translateOriginToPoint:
- -unlockFocus
- -unregisterDraggedTypes
- -viewDidEndLiveResize
- -viewDidMoveToSuperview
- -viewDidMoveToWindow
- -viewWillMoveToSuperview:
- -viewWillMoveToWindow:
- -viewWillStartLiveResize
- -viewWithTag:
- -visibleRect
- -wantsDefaultClipping
- -widthAdjustLimit
- -willRemoveSubview:
- -window
- -writeEPSInsideRect:toPasteboard:
- -writePDFInsideRect:toPasteboard:

### defaultFocusRingType

+ (NSFocusRingType) defaultFocusRingType;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### defaultMenu

+ (NSMenu*) defaultMenu;
Availability: MacOS-X 10.0.0

Returns the default menu to be used for instances of the current class; if no menu has been set through setMenu: this default menu will be used.

NSView's implementation returns `nil` . You should override this method if you want all instances of your custom view to use the same menu.

### focusView

+ (NSView*) focusView;
Availability: OpenStep
Return the view at the top of graphics contexts stack or `nil` if none is focused.

### acceptsFirstMouse:

- (BOOL) acceptsFirstMouse: (NSEvent*)theEvent;
Availability: OpenStep
Returns `YES` if the view object will accept the first click received when in an inactive window, and `NO` otherwise.

### addCursorRect: cursor:

- (void) addCursorRect: (NSRect)aRect cursor: (NSCursor*)anObject;
Availability: OpenStep
Adds a cursor rectangle. This provides for automatic update of the cursor to be anObject while the mouse is in aRect.
The cursor ( anObject) is retained until the cursor rectangle is removed or discarded.
Generally your subviews should call this in their implementation of the -resetCursorRects method.
It is your responsibility to ensure that aRect lies within your veiw's visible rectangle.

### addSubview:

- (void) addSubview: (NSView*)aView;
Availability: OpenStep
Adds aView as a subview of the receiver.

### addSubview: positioned: relativeTo:

- (void) addSubview: (NSView*)aView positioned: (NSWindowOrderingMode)place relativeTo: (NSView*)otherView;
Availability: OpenStep
Description forthcoming.

### addToPageSetup

- (void) addToPageSetup;
Availability: OpenStep
Description forthcoming.

### addToolTipRect: owner: userData:

- (NSToolTipTag) addToolTipRect: (NSRect)aRect owner: (id)anObject userData: (void*)data;
Availability: MacOS-X 10.0.0
Description forthcoming.

### addTrackingRect: owner: userData: assumeInside:

- (NSTrackingRectTag) addTrackingRect: (NSRect)aRect owner: (id)anObject userData: (void*)data assumeInside: (BOOL)flag;
Availability: OpenStep
Adds a tracking rectangle to monitor mouse movement and generate mouse-entered and mouse-exited events.
The event messages are sent to anObject, which is not retained and must therefore be sure to remove any tracking rectangles using it before it is deallocated.
The value of data is supplied as the user data in the event objects generated.
If flag is `YES` then the mouse is assumed to be inside the tracking rectangle and the first event generated will therefore be a mouse exit, if it is `NO` then the first event generated will be a mouse entry.

### adjustPageHeightNew: top: bottom: limit:

- (void) adjustPageHeightNew: (float*)newBottom top: (float)oldTop bottom: (float)oldBottom limit: (float)bottomLimit;
Availability: OpenStep
Description forthcoming.

### adjustPageWidthNew: left: right: limit:

- (void) adjustPageWidthNew: (float*)newRight left: (float)oldLeft right: (float)oldRight limit: (float)rightLimit;
Availability: OpenStep
Description forthcoming.

### adjustScroll:

- (NSRect) adjustScroll: (NSRect)newVisible;
Availability: OpenStep
Description forthcoming.

### allocateGState

- (void) allocateGState;
Availability: OpenStep

Tell the view to maintain a private gstate object which encapsulates all the information about drawing, such as coordinate transforms, line widths, etc. If you do not invoke this method, a gstate object is constructed each time the view is lockFocused. Allocating a private gstate may improve the performance of views that are focused a lot and have a lot of customized drawing parameters.

View subclasses should override the setUpGstate method to set these custom parameters.

### ancestorSharedWithView:

- (NSView*) ancestorSharedWithView: (NSView*)aView;
Availability: OpenStep
Returns self if aView is the receiver or aView is a subview of the receiver, the ancestor view shared by aView and the receiver if any, or aView if it is an ancestor of the receiver, otherwise returns `nil`.

### autoresizesSubviews

- (BOOL) autoresizesSubviews;
Availability: OpenStep
Description forthcoming.

### autoresizingMask

- (unsigned int) autoresizingMask;
Availability: OpenStep
Description forthcoming.

### autoscroll:

- (BOOL) autoscroll: (NSEvent*)theEvent;
Availability: OpenStep
Finds the nearest enclosing NSClipView and, if the location of the event is outside it, scrolls the NSClipView in the direction of the event. The amount scrolled is proportional to how far outside the NSClipView the event's location is. This method is suitable for calling periodically from a modal event tracking loop when the mouse is dragged outside the tracking view. The suggested period of the calls is 0.1 seconds.

### beginDocument

- (void) beginDocument;
Availability: MacOS-X 10.0.0
Writes header and job information for the PostScript document. This includes at a minimum, PostScript header information. It may also include job setup information if the output is intended for a printer (i.e. not an EPS file). Most of the information for writing the header comes from the NSPrintOperation and NSPrintInfo objects associated with the current print operation. There isn't normally anything that the program needs to override at the beginning of a document, although if there is additional setup that needs to be done, you can override the NSView's methods endHeaderComments, endPrologue, beginSetup, and/or endSetup. This method calls the above methods in the listed order before or after writing the required information. For an EPS operation, the beginSetup and endSetup methods aren't used.

### beginPage: label: bBox: fonts:

- (void) beginPage: (int)ordinalNum label: (NSString*)aString bBox: (NSRect)pageRect fonts: (NSString*)fontNames;
Availability: OpenStep
Description forthcoming.

### beginPageInRect: atPlacement:

- (void) beginPageInRect: (NSRect)aRect atPlacement: (NSPoint)location;
Availability: MacOS-X 10.0.0
Description forthcoming.

### beginPageSetupRect: placement:

- (void) beginPageSetupRect: (NSRect)aRect placement: (NSPoint)location;
Availability: OpenStep
Description forthcoming.

### beginPrologueBBox: creationDate: createdBy: fonts: forWhom: pages: title:

- (void) beginPrologueBBox: (NSRect)boundingBox creationDate: (NSString*)dateCreated createdBy: (NSString*)anApplication fonts: (NSString*)fontNames forWhom: (NSString*)user pages: (int)numPages title: (NSString*)aTitle;
Availability: OpenStep
Description forthcoming.

### beginSetup

- (void) beginSetup;
Availability: OpenStep
Description forthcoming.

### beginTrailer

- (void) beginTrailer;
Availability: OpenStep
Description forthcoming.

### bounds

- (NSRect) bounds;
Availability: OpenStep
Description forthcoming.

### boundsRotation

- (float) boundsRotation;
Availability: OpenStep
Description forthcoming.

### canBecomeKeyView

- (BOOL) canBecomeKeyView;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### canDraw

- (BOOL) canDraw;
Availability: OpenStep
Description forthcoming.

### centerScanRect:

- (NSRect) centerScanRect: (NSRect)aRect;
Availability: OpenStep
Description forthcoming.

### convertPoint: fromView:

- (NSPoint) convertPoint: (NSPoint)aPoint fromView: (NSView*)aView;
Availability: OpenStep
Description forthcoming.

### convertPoint: toView:

- (NSPoint) convertPoint: (NSPoint)aPoint toView: (NSView*)aView;
Availability: OpenStep
Description forthcoming.

### convertRect: fromView:

- (NSRect) convertRect: (NSRect)aRect fromView: (NSView*)aView;
Availability: OpenStep
Converts aRect from the coordinate system of aView to the coordinate system of the receiver, ie. returns the bounding rectangle in the receiver of aRect in aView.
aView and the receiver must be in the same window. If aView is `nil`, converts from the receiver's window's coordinate system.

### convertRect: toView:

- (NSRect) convertRect: (NSRect)aRect toView: (NSView*)aView;
Availability: OpenStep
Converts aRect from the coordinate system of the receiver to the coordinate system of aView, ie. returns the bounding rectangle in aView of aRect in the receiver.
aView and the receiver must be in the same window. If aView is `nil`, converts to the receiver's window's coordinate system.

### convertSize: fromView:

- (NSSize) convertSize: (NSSize)aSize fromView: (NSView*)aView;
Availability: OpenStep
Description forthcoming.

### convertSize: toView:

- (NSSize) convertSize: (NSSize)aSize toView: (NSView*)aView;
Availability: OpenStep
Description forthcoming.

### dataWithEPSInsideRect:

- (NSData*) dataWithEPSInsideRect: (NSRect)aRect;
Availability: OpenStep
Description forthcoming.

### dataWithPDFInsideRect:

- (NSData*) dataWithPDFInsideRect: (NSRect)aRect;
Availability: MacOS-X 10.0.0
Description forthcoming.

### didAddSubview:

- (void) didAddSubview: (NSView*)subview;
Availability: MacOS-X 10.0.0
Description forthcoming.

### discardCursorRects

- (void) discardCursorRects;
Availability: OpenStep
Removes all the cursor rectancles which have been set up for the receiver. This is equivalent to calling -removeCursorRect:cursor: for all cursor rectangles which have been set up.
This is called automatically before the system calls -resetCursorRects so you never need to call it.

### display

- (void) display;
Availability: OpenStep
Description forthcoming.

### displayIfNeeded

- (void) displayIfNeeded;
Availability: OpenStep
Description forthcoming.

### displayIfNeededIgnoringOpacity

- (void) displayIfNeededIgnoringOpacity;
Availability: OpenStep
Description forthcoming.

### displayIfNeededInRect:

- (void) displayIfNeededInRect: (NSRect)aRect;
Availability: OpenStep
Description forthcoming.

### displayIfNeededInRectIgnoringOpacity:

- (void) displayIfNeededInRectIgnoringOpacity: (NSRect)aRect;
Availability: OpenStep
Description forthcoming.

### displayRect:

- (void) displayRect: (NSRect)aRect;
Availability: OpenStep
Causes the area of the view specified by aRect to be displayed. This is done by moving up the view hierarchy until an opaque view is found, then asking that view to update the appropriate area.

### displayRectIgnoringOpacity:

- (void) displayRectIgnoringOpacity: (NSRect)aRect;
Availability: OpenStep
Description forthcoming.

### dragFile: fromRect: slideBack: event:

- (BOOL) dragFile: (NSString*)filename fromRect: (NSRect)rect slideBack: (BOOL)slideFlag event: (NSEvent*)event;
Availability: OpenStep
Description forthcoming.

### dragImage: at: offset: event: pasteboard: source: slideBack:

- (void) dragImage: (NSImage*)anImage at: (NSPoint)viewLocation offset: (NSSize)initialOffset event: (NSEvent*)event pasteboard: (NSPasteboard*)pboard source: (id)sourceObject slideBack: (BOOL)slideFlag;
Availability: OpenStep
Description forthcoming.

### dragPromisedFilesOfTypes: fromRect: source: slideBack: event:

- (BOOL) dragPromisedFilesOfTypes: (NSArray*)typeArray fromRect: (NSRect)aRect source: (id)sourceObject slideBack: (BOOL)slideBack event: (NSEvent*)theEvent;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### drawPageBorderWithSize:

- (void) drawPageBorderWithSize: (NSSize)borderSize;
Availability: OpenStep
Description forthcoming.

### drawRect:

- (void) drawRect: (NSRect)rect;
Availability: OpenStep
This method is invoked to handle drawing inside the view. The default NSView's implementation does nothing; subclasses might override it to draw something inside the view. Since NSView's implementation is guaranteed to be empty, you should not call super's implementation when you override it in subclasses. drawRect: is invoked when the focus has already been locked on the view; you can use arbitrary postscript functions in drawRect: to draw inside your view; the coordinate system in which you draw is the view's own coordinate system (this means for example that you should refer to the rectangle covered by the view using its bounds, and not its frame). The argument of drawRect: is the rectangle which needs to be redrawn. In a lossy implementation, you can ignore the argument and redraw the whole view; if you are aiming at performance, you may want to redraw only what is inside the rectangle which needs to be redrawn; this usually improves drawing performance considerably.

### drawSheetBorderWithSize:

- (void) drawSheetBorderWithSize: (NSSize)borderSize;
Availability: OpenStep
Description forthcoming.

### enclosingScrollView

- (NSScrollView*) enclosingScrollView;
Availability: OpenStep
Description forthcoming.

### endDocument

- (void) endDocument;
Availability: MacOS-X 10.0.0
Description forthcoming.

### endHeaderComments

- (void) endHeaderComments;
Availability: OpenStep
Description forthcoming.

### endPage

- (void) endPage;
Availability: OpenStep
Description forthcoming.

### endPageSetup

- (void) endPageSetup;
Availability: OpenStep
Description forthcoming.

### endPrologue

- (void) endPrologue;
Availability: OpenStep
Description forthcoming.

### endSetup

- (void) endSetup;
Availability: OpenStep
Description forthcoming.

### endTrailer

- (void) endTrailer;
Availability: OpenStep
Description forthcoming.

### fax:

- (void) fax: (id)sender;
Availability: OpenStep
Description forthcoming.

### focusRingType

- (NSFocusRingType) focusRingType;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### frame

- (NSRect) frame;
Availability: OpenStep
Description forthcoming.

### frameRotation

- (float) frameRotation;
Availability: OpenStep
Description forthcoming.

### gState

- (int) gState;
Availability: OpenStep
Returns an identifier that represents the view's gstate object, which is used to encapsulate drawing information about the view. Most of the time a gstate object is created from scratch when the view is focused, so if the view is not currently focused or allocateGState has not been called, then this method will return 0. FIXME: The above is what the OpenStep and Cocoa specification say, but gState is 0 unless allocateGState has been called.

### getRectsBeingDrawn: count:

- (void) getRectsBeingDrawn: (const NSRect**)rects count: (int*)count;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### getRectsExposedDuringLiveResize: count:

- (void) getRectsExposedDuringLiveResize: (NSRect[4])exposedRects count: (int*)count;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### heightAdjustLimit

- (float) heightAdjustLimit;
Availability: OpenStep
Description forthcoming.

### hitTest:

- (NSView*) hitTest: (NSPoint)aPoint;
Availability: OpenStep
Returns the subview, lowest in the receiver's hierarchy, which contains aPoint, or `nil` if there is no such view.

### inLiveResize

- (BOOL) inLiveResize;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### initWithFrame:

- (id) initWithFrame: (NSRect)frameRect;
Availability: OpenStep
Description forthcoming.

### isDescendantOf:

- (BOOL) isDescendantOf: (NSView*)aView;
Availability: OpenStep
Returns `YES` if aView is an ancestor of the receiver.

### isFlipped

- (BOOL) isFlipped;
Availability: OpenStep
Description forthcoming.

### isHidden

- (BOOL) isHidden;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### isHiddenOrHasHiddenAncestor

- (BOOL) isHiddenOrHasHiddenAncestor;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### isOpaque

- (BOOL) isOpaque;
Availability: OpenStep
Description forthcoming.

### isRotatedFromBase

- (BOOL) isRotatedFromBase;
Availability: OpenStep
Description forthcoming.

### isRotatedOrScaledFromBase

- (BOOL) isRotatedOrScaledFromBase;
Availability: OpenStep
Description forthcoming.

### knowsPageRange:

- (BOOL) knowsPageRange: (NSRange*)range;
Availability: MacOS-X 10.0.0
Description forthcoming.

### knowsPagesFirst: last:

- (BOOL) knowsPagesFirst: (int*)firstPageNum last: (int*)lastPageNum;
Availability: OpenStep
Description forthcoming.

### locationOfPrintRect:

- (NSPoint) locationOfPrintRect: (NSRect)aRect;
Availability: OpenStep
Description forthcoming.

### lockFocus

- (void) lockFocus;
Availability: OpenStep
Description forthcoming.

### lockFocusIfCanDraw

- (BOOL) lockFocusIfCanDraw;
Availability: MacOS-X 10.0.0
Description forthcoming.

### lockFocusIfCanDrawInContext:

- (BOOL) lockFocusIfCanDrawInContext: (NSGraphicsContext*)context;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### lockFocusInRect:

- (void) lockFocusInRect: (NSRect)rect;
Availability: MacOS-X 10.0.0
Description forthcoming.

### menuForEvent:

- (NSMenu*) menuForEvent: (NSEvent*)theEvent;
Availability: MacOS-X 10.0.0

Returns the menu that it appropriates for the given event. NSView's implementation returns the default menu of the view.

This methods is intended to be overriden so that it can return a context-sensitive for appropriate mouse's events. ((although it seems it can be used for any kind of event)

This method is used by NSView's rightMouseDown: method, and the returned NSMenu is displayed as a context menu

Use of this method is discouraged in GNUstep as it breaks many user interface guidelines. At the very least, menu items that appear in a context sensitive menu should also always appear in a normal menu. Otherwise, users are faced with an inconsistant interface where the menu items they want are only available in certain (possibly unknown) cases, making it difficult for the user to understand how the application operates

see [NSResponder -menu], [NSResponder -setMenu:], [NSView +defaultMenu] and [NSView -menu].

### mouse: inRect:

- (BOOL) mouse: (NSPoint)aPoint inRect: (NSRect)aRect;
Availability: OpenStep
Returns whether or not aPoint lies within aRect.

### mouseDownCanMoveWindow

- (BOOL) mouseDownCanMoveWindow;
Availability: MacOS-X 10.0.0
Description forthcoming.

### needsDisplay

- (BOOL) needsDisplay;
Availability: OpenStep
Description forthcoming.

### needsPanelToBecomeKey

- (BOOL) needsPanelToBecomeKey;
Availability: OpenStep
Description forthcoming.

### needsToDrawRect:

- (BOOL) needsToDrawRect: (NSRect)aRect;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### nextKeyView

- (NSView*) nextKeyView;
Availability: OpenStep
Returns the next view after the receiver in the key view chain.
Returns `nil` if there is no view after the receiver.
The next view is set up using the -setNextKeyView: method.
The key view chain is used to determine the order in which views become first responder when using keyboard navigation.

### nextValidKeyView

- (NSView*) nextValidKeyView;
Availability: OpenStep
Returns the first available view after the receiver which is actually able to become first responder. See -nextKeyView and [NSResponder -acceptsFirstResponder]

### opaqueAncestor

- (NSView*) opaqueAncestor;
Availability: OpenStep
Description forthcoming.

### pageFooter

- (NSAttributedString*) pageFooter;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### pageHeader

- (NSAttributedString*) pageHeader;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### performKeyEquivalent:

- (BOOL) performKeyEquivalent: (NSEvent*)theEvent;
Availability: OpenStep
Description forthcoming.

### performMnemonic:

- (BOOL) performMnemonic: (NSString*)aString;
Availability: MacOS-X 10.0.0
Description forthcoming.

### postsBoundsChangedNotifications

- (BOOL) postsBoundsChangedNotifications;
Availability: OpenStep
Description forthcoming.

### postsFrameChangedNotifications

- (BOOL) postsFrameChangedNotifications;
Availability: OpenStep
Description forthcoming.

### preservesContentDuringLiveResize

- (BOOL) preservesContentDuringLiveResize;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### previousKeyView

- (NSView*) previousKeyView;
Availability: OpenStep
Returns the view before the receiver in the key view chain.
Returns `nil` if there is no view before the receiver in the chain.
The previous view of the receiver was set up by passing it as the argument to a call of -setNextKeyView: on that view.
The key view chain is used to determine the order in which views become first responder when using keyboard navigation.

### previousValidKeyView

- (NSView*) previousValidKeyView;
Availability: OpenStep
Returns the first available view before the receiver which is actually able to become first responder. See -nextKeyView and [NSResponder -acceptsFirstResponder]

### print:

- (void) print: (id)sender;
Availability: OpenStep
Description forthcoming.

### printJobTitle

- (NSString*) printJobTitle;
Availability: MacOS-X 10.0.0
Description forthcoming.

### rectForPage:

- (NSRect) rectForPage: (int)page;
Availability: OpenStep
Description forthcoming.

### rectPreservedDuringLiveResize

- (NSRect) rectPreservedDuringLiveResize;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### reflectScrolledClipView:

- (void) reflectScrolledClipView: (NSClipView*)aClipView;
Availability: OpenStep
Description forthcoming.

### registerForDraggedTypes:

- (void) registerForDraggedTypes: (NSArray*)newTypes;
Availability: OpenStep
Registers the fact that the receiver should accept dragged data of any of the specified types. You need to do this if you want your view to support drag and drop.

### releaseGState

- (void) releaseGState;
Availability: OpenStep
Frees the gstate object, if there is one.

### removeAllToolTips

- (void) removeAllToolTips;
Availability: MacOS-X 10.0.0
Description forthcoming.

### removeCursorRect: cursor:

- (void) removeCursorRect: (NSRect)aRect cursor: (NSCursor*)anObject;
Availability: OpenStep
Removes the cursor rectangle which was set up for the specified rectangle and cursor.

### removeFromSuperview

- (void) removeFromSuperview;
Availability: OpenStep

Removes the receiver from its superviews list of subviews, by invoking the superviews -removeSubview: method, and marks the rectangle that the reciever occupied in the superview as needing redisplay.

This is dangerous to use during display, since it alters the rectangles needing display. In this case, you can use the -removeFromSuperviewWithoutNeedingDisplay method instead.

### removeFromSuperviewWithoutNeedingDisplay

- (void) removeFromSuperviewWithoutNeedingDisplay;
Availability: OpenStep
Removes the receiver from its superviews list of subviews, by invoking the superviews [-removeSubview:] method.

### removeSubview:

- (void) removeSubview: (NSView*)aView;
Availability: Not in OpenStep/MacOS-X

Removes aSubview from the receivers list of subviews and from the responder chain.

Also invokes -viewWillMoveToWindow: on aView with a `nil` argument, to handle removal of aView (and recursively, its children) from its window - performing tidyup by invalidating cursor rects etc.

### removeToolTip:

- (void) removeToolTip: (NSToolTipTag)tag;
Availability: MacOS-X 10.0.0
Description forthcoming.

### removeTrackingRect:

- (void) removeTrackingRect: (NSTrackingRectTag)tag;
Availability: OpenStep
Removes a tracking rectangle which was previously established using the -addTrackingRect:owner:userData:assumeInside: method.
The value of tag must be the value returned by the method used to add the rectangle.

### renewGState

- (void) renewGState;
Availability: OpenStep
Invalidates the view's gstate object so it will be set up again using setUpGState the next time the view is focused.

### replaceSubview: with:

- (void) replaceSubview: (NSView*)oldView with: (NSView*)newView;
Availability: OpenStep
Removes oldView, which should be a subview of the receiver, from the receiver and places newView in its place. If newView is `nil`, just removes oldView. If oldView is `nil`, just adds newView.

### resetCursorRects

- (void) resetCursorRects;
Availability: OpenStep
Subclasses should override this method.
This is called to establish a new set of cursor rectangles whenever the receiver needs to do so (eg the view has been resized). The default implementation does nothing, but subclasses should use it to make calls to -addCursorRect:cursor: to establish their new cursor rectangles.

### resizeSubviewsWithOldSize:

- (void) resizeSubviewsWithOldSize: (NSSize)oldSize;
Availability: OpenStep
Description forthcoming.

### resizeWithOldSuperviewSize:

- (void) resizeWithOldSuperviewSize: (NSSize)oldSize;
Availability: OpenStep
Description forthcoming.

### rotateByAngle:

- (void) rotateByAngle: (float)angle;
Availability: OpenStep
Description forthcoming.

### scaleUnitSquareToSize:

- (void) scaleUnitSquareToSize: (NSSize)newSize;
Availability: OpenStep
Description forthcoming.

### scrollClipView: toPoint:

- (void) scrollClipView: (NSClipView*)aClipView toPoint: (NSPoint)aPoint;
Availability: OpenStep
Description forthcoming.

### scrollPoint:

- (void) scrollPoint: (NSPoint)aPoint;
Availability: OpenStep
Description forthcoming.

### scrollRect: by:

- (void) scrollRect: (NSRect)aRect by: (NSSize)delta;
Availability: OpenStep
Copy on scroll method, should be called from [NSClipView setBoundsOrigin].

### scrollRectToVisible:

- (BOOL) scrollRectToVisible: (NSRect)aRect;
Availability: OpenStep
Scrolls the nearest enclosing clip view the minimum required distance necessary to make aRect (or as much of it possible) in the receiver visible. Returns `YES` iff any scrolling was done.

### setAutoresizesSubviews:

- (void) setAutoresizesSubviews: (BOOL)flag;
Availability: OpenStep
Description forthcoming.

### setAutoresizingMask:

- (void) setAutoresizingMask: (unsigned int)mask;
Availability: OpenStep
Description forthcoming.

### setBounds:

- (void) setBounds: (NSRect)aRect;
Availability: OpenStep
Description forthcoming.

### setBoundsOrigin:

- (void) setBoundsOrigin: (NSPoint)newOrigin;
Availability: OpenStep
Description forthcoming.

### setBoundsRotation:

- (void) setBoundsRotation: (float)angle;
Availability: OpenStep
Description forthcoming.

### setBoundsSize:

- (void) setBoundsSize: (NSSize)newSize;
Availability: OpenStep
Description forthcoming.

### setFocusRingType:

- (void) setFocusRingType: (NSFocusRingType)focusRingType;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### setFrame:

- (void) setFrame: (NSRect)frameRect;
Availability: OpenStep
Description forthcoming.

### setFrameOrigin:

- (void) setFrameOrigin: (NSPoint)newOrigin;
Availability: OpenStep
Description forthcoming.

### setFrameRotation:

- (void) setFrameRotation: (float)angle;
Availability: OpenStep
Description forthcoming.

### setFrameSize:

- (void) setFrameSize: (NSSize)newSize;
Availability: OpenStep
Description forthcoming.

### setHidden:

- (void) setHidden: (BOOL)flag;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### setKeyboardFocusRingNeedsDisplayInRect:

- (void) setKeyboardFocusRingNeedsDisplayInRect: (NSRect)rect;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### setNeedsDisplay:

- (void) setNeedsDisplay: (BOOL)flag;
Availability: OpenStep
As an exception to the general rules for threads and gui, this method is thread-safe and may be called from any thread. Display will always be done in the main thread. (Note that other methods are in general not thread-safe; if you want to access other properties of views from multiple threads, you need to provide the synchronization.)

### setNeedsDisplayInRect:

- (void) setNeedsDisplayInRect: (NSRect)invalidRect;
Availability: OpenStep
Inform the view system that the specified rectangle is invalid and requires updating. This automatically informs any superviews of any updating they need to do. As an exception to the general rules for threads and gui, this method is thread-safe and may be called from any thread. Display will always be done in the main thread. (Note that other methods are in general not thread-safe; if you want to access other properties of views from multiple threads, you need to provide the synchronization.)

### setNextKeyView:

- (void) setNextKeyView: (NSView*)aView;
Availability: OpenStep

The effect of the -setNextKeyView: method is to set aView to be the value returned by subsequent calls to the receivers -nextKeyView method. This also has the effect of setting the previous key view of aView, so that subsequent calls to its -previousKeyView method will return the receiver.

As a special case, if you pass `nil` as aView then the -previousKeyView of the receivers current -nextKeyView is set to `nil` as well as the receivers -nextKeyView being set to `nil`.
This behavior provides MacOS-X compatibility.

If you pass a non-view object other than `nil`, an NSInternaInconsistencyException is raised.

NB This method does NOT cause aView to be retained, and if aView is deallocated, the [NSView -dealloc] method will automatically remove it from the key view chain it is in.

For keyboard navigation, views are linked together in a chain, so that the current first responder view can be changed by stepping backward and forward in that chain. This is the method for building and modifying that chain.

The MacOS-X documentation refers to this chain as a loop, but the actual implementation is not a loop at all (except as a special case when you make the chain into a loop). In fact, while each view may have only zero or one next view, and zero or one previous view, several views may have their next view set to a single view and/or their previous views set to a single view. So the actual setup is a directed graph rather than a loop.

While a directed graph is a very powerful and flexible way of managing the way views get keyboard focus in response to tabs etc, it can be confusing if misused. It is probably best therefore, to set your views up as a single loop within each window.

       [a setNextKeyView: b];
       [b setNextKeyView: c];
       [c setNextKeyView: d];
       [d setNextKeyView: a];

### setPostsBoundsChangedNotifications:

- (void) setPostsBoundsChangedNotifications: (BOOL)flag;
Availability: OpenStep
Description forthcoming.

### setPostsFrameChangedNotifications:

- (void) setPostsFrameChangedNotifications: (BOOL)flag;
Availability: OpenStep
Description forthcoming.

### setPreviousKeyView:

- (void) setPreviousKeyView: (NSView*)aView;
Availability: OpenStep
GNUstep addition... a conveninece method to insert a view in the key view chain before the receiver, using the -previousKeyView and -setNextKeyView: methods.

### setToolTip:

- (void) setToolTip: (NSString*)string;
Availability: MacOS-X 10.0.0
Description forthcoming.

### setUpGState

- (void) setUpGState;
Availability: OpenStep
Description forthcoming.

### shouldDelayWindowOrderingForEvent:

- (BOOL) shouldDelayWindowOrderingForEvent: (NSEvent*)anEvent;
Availability: OpenStep
Description forthcoming.

### shouldDrawColor

- (BOOL) shouldDrawColor;
Availability: OpenStep
Description forthcoming.

### sortSubviewsUsingFunction: context:

- (void) sortSubviewsUsingFunction: (int(*)(id,id,void*))compare context: (void*)context;
Availability: OpenStep
Description forthcoming.

### subviews

- (NSArray*) subviews;
Availability: OpenStep
Description forthcoming.

### superview

- (NSView*) superview;
Availability: OpenStep
Description forthcoming.

### tag

- (int) tag;
Availability: OpenStep
Description forthcoming.

### toolTip

- (NSString*) toolTip;
Availability: MacOS-X 10.0.0
Description forthcoming.

### translateOriginToPoint:

- (void) translateOriginToPoint: (NSPoint)point;
Availability: OpenStep
Description forthcoming.

### unlockFocus

- (void) unlockFocus;
Availability: OpenStep
Description forthcoming.

### unregisterDraggedTypes

- (void) unregisterDraggedTypes;
Availability: OpenStep
Description forthcoming.

### viewDidEndLiveResize

- (void) viewDidEndLiveResize;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### viewDidMoveToSuperview

- (void) viewDidMoveToSuperview;
Availability: MacOS-X 10.0.0
Description forthcoming.

### viewDidMoveToWindow

- (void) viewDidMoveToWindow;
Availability: MacOS-X 10.0.0
Description forthcoming.

### viewWillMoveToSuperview:

- (void) viewWillMoveToSuperview: (NSView*)newSuper;
Availability: OpenStep
Notifies the receiver that its superview is being changed to newSuper.

### viewWillMoveToWindow:

- (void) viewWillMoveToWindow: (NSWindow*)newWindow;
Availability: OpenStep
Notifies the receiver that it will now be a view of newWindow. Note, this method is also used when removing a view from a window (in which case, newWindow is `nil`) to let all the subviews know that they have also been removed from the window.

### viewWillStartLiveResize

- (void) viewWillStartLiveResize;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### viewWithTag:

- (id) viewWithTag: (int)aTag;
Availability: OpenStep
Description forthcoming.

### visibleRect

- (NSRect) visibleRect;
Availability: OpenStep
Description forthcoming.

### wantsDefaultClipping

- (BOOL) wantsDefaultClipping;
Availability: Not in OpenStep/MacOS-X
Description forthcoming.

### widthAdjustLimit

- (float) widthAdjustLimit;
Availability: OpenStep
Description forthcoming.

### willRemoveSubview:

- (void) willRemoveSubview: (NSView*)subview;
Availability: MacOS-X 10.0.0
Description forthcoming.

### window

- (NSWindow*) window;
Availability: OpenStep
Returns the window in which the receiver resides.

### writeEPSInsideRect: toPasteboard:

- (void) writeEPSInsideRect: (NSRect)rect toPasteboard: (NSPasteboard*)pasteboard;
Availability: OpenStep
Description forthcoming.

### writePDFInsideRect: toPasteboard:

- (void) writePDFInsideRect: (NSRect)aRect toPasteboard: (NSPasteboard*)pboard;
Availability: MacOS-X 10.0.0
Description forthcoming.

## Instance Variables for NSView Class

### _allocate_gstate

@public BOOL _allocate_gstate;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _autoresizes_subviews

@public BOOL _autoresizes_subviews;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _autoresizingMask

@public unsigned int _autoresizingMask;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _bounds

@protected NSRect _bounds;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _boundsMatrix

@protected id _boundsMatrix;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _coordinates_valid

@public BOOL _coordinates_valid;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _cursor_rects

@protected NSMutableArray* _cursor_rects;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _focusRingType

@public NSFocusRingType _focusRingType;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _frame

@protected NSRect _frame;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _frameMatrix

@protected id _frameMatrix;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _gstate

@protected int _gstate;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _in_live_resize

@public BOOL _in_live_resize;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _invalidRect

@protected NSRect _invalidRect;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _is_hidden

@public BOOL _is_hidden;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _is_rotated_from_base

@public BOOL _is_rotated_from_base;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _is_rotated_or_scaled_from_base

@public BOOL _is_rotated_or_scaled_from_base;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _matrixFromWindow

@protected id _matrixFromWindow;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _matrixToWindow

@protected id _matrixToWindow;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _nextKeyView

@protected void* _nextKeyView;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _post_bounds_changes

@public BOOL _post_bounds_changes;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _post_frame_changes

@public BOOL _post_frame_changes;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _previousKeyView

@protected void* _previousKeyView;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _rFlags

@public struct _rFlagsType _rFlags;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _renew_gstate

@public BOOL _renew_gstate;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _sub_views

@protected NSMutableArray* _sub_views;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _super_view

@protected NSView* _super_view;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _tracking_rects

@protected NSMutableArray* _tracking_rects;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _visibleRect

@protected NSRect _visibleRect;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

### _window

@protected NSWindow* _window;
Availability: OpenStep
Warning the underscore at the start of the name of this instance variable indicates that, even though it is not technically private, it is intended for internal use within the package, and you should not use the variable in other code.

# Software documentation for the NSView(PrivateMethods) category

## NSView(PrivateMethods)

> Declared in:
>   AppKit/NSView.h

Availability: Not in OpenStep/MacOS-X
Warning this category is private, which means that the methods are for internal use by the package. You should not use them in external code.
Method summary

- -_invalidateCoordinates
- -_matrixFromWindow
- -_matrixToWindow
- -_rebuildCoordinates

### _invalidateCoordinates

- (void) _invalidateCoordinates;
Availability: Not in OpenStep/MacOS-X
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _matrixFromWindow

- (NSAffineTransform*) _matrixFromWindow;
Availability: Not in OpenStep/MacOS-X
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _matrixToWindow

- (NSAffineTransform*) _matrixToWindow;
Availability: Not in OpenStep/MacOS-X
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

### _rebuildCoordinates

- (void) _rebuildCoordinates;
Availability: Not in OpenStep/MacOS-X
Warning the underscore at the start of the name of this method indicates that it is private, for internal use only, and you should not use the method in your code.

Up