| Inherits from | |
| Conforms to | |
| Framework | /System/Library/Frameworks/AppKit.framework |
| Availability | Available in Mac OS X v10.0 and later.
|
| Companion guide | |
| Declared in | NSMatrix.h |
NSMatrix is a class used for creating groups of objects that work together in various ways.NSCell
The cells in an NSMatrix object are numbered by row and column, each starting with 0; for example, the top left NSCell would be at (0, 0), and the NSCell that’s second down and third across would be at (1, 2). The NSMatrix class has the notion of a single selected cell, which is the cell that was most recently clicked or that was so designated by a selectCellAtRow:column: or selectCellWithTag: message. The selected cell is the cell chosen for action messages except for performClick: (NSCell), which is assigned to the key cell. (The key cell is generally identical to the selected cell, but can be given click focus while leaving the selected cell unchanged.) If the user has selected multiple cells, the selected cell is the one lowest and furthest to the right in the matrix of cells.
– initWithFrame:
– initWithFrame:mode:cellClass:numberOfRows:numberOfColumns:
– initWithFrame:mode:prototype:numberOfRows:numberOfColumns:
– setMode:
– mode
– setAllowsEmptySelection:
– allowsEmptySelection
– setSelectionByRect:
– isSelectionByRect
– addColumn
– addColumnWithCells:
– addRow
– addRowWithCells:
– cellFrameAtRow:column:
– cellSize
– getNumberOfRows:columns:
– insertColumn:
– insertColumn:withCells:
– insertRow:
– insertRow:withCells:
– intercellSpacing
– makeCellAtRow:column:
– numberOfColumns
– numberOfRows
– putCell:atRow:column:
– removeColumn:
– removeRow:
– renewRows:columns:
– setCellSize:
– setIntercellSpacing:
– sortUsingFunction:context:
– sortUsingSelector:
– selectCellAtRow:column:
– selectCellWithTag:
– selectAll:
– setKeyCell:
– keyCell
– setSelectionFrom:to:anchor:highlight:
– deselectAllCells
– deselectSelectedCell
– selectedCell
– selectedCells
– selectedColumn
– selectedRow
– cellAtRow:column:
– cellWithTag:
– cells
– backgroundColor
– cellBackgroundColor
– drawsBackground
– drawsCellBackground
– setBackgroundColor:
– setCellBackgroundColor:
– setDrawsBackground:
– setDrawsCellBackground:
– selectText:
– selectTextAtRow:column:
– textShouldBeginEditing:
– textDidBeginEditing:
– textDidChange:
– textShouldEndEditing:
– textDidEndEditing:
Returns a Boolean value indicating whether the receiver accepts the first mouse.
- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent
This parameter is ignored.
NO if the selection mode of the receiver is NSListModeMatrix, YES if the receiver is in any other selection mode. The receiver does not accept first mouse in NSListModeMatrix to prevent the loss of multiple selections.
NSMatrix.hAdds a new column of cells to the right of the last column.
- (void)addColumn
This method raises an NSRangeException if there are 0 rows or 0 columns. This method creates new cells as needed with makeCellAtRow:column:. Use renewRows:columns: to add new cells to an empty matrix.
If the number of rows or columns in the receiver has been changed with renewRows:columns:, new cells are created only if they are needed. This fact allows you to grow and shrink an NSMatrix without repeatedly creating and freeing the cells.
This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
NSMatrix.hAdds a new column of cells to the right of the last column, using the given cells.
- (void)addColumnWithCells:(NSArray *)newCells
An array of objects to use when filling the new column starting with the object at index 0. Each object in should be an instance of NSCell or one of its subclasses (usually NSActionCell). The array should have a sufficient number of cells to fill the entire column. Extra cells are ignored, unless the matrix is empty. In that case, a matrix is created with one column and enough rows for all the elements of newCells.
This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
NSMatrix.hAdds a new row of cells below the last row.
- (void)addRow
New cells are created as needed with makeCellAtRow:column:. This method raises an NSRangeException if there are 0 rows or 0 columns. Use renewRows:columns: to add new cells to an empty matrix.
If the number of rows or columns in the receiver has been changed with renewRows:columns:, then new cells are created only if they are needed. This fact allows you to grow and shrink an NSMatrix without repeatedly creating and freeing the cells.
This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
NSMatrix.hAdds a new row of cells below the last row, using the specified cells.
- (void)addRowWithCells:(NSArray *)newCells
An array of objects to use to fill the new row, starting with the object at index 0. Each object should be an instance of NSCell or one of its subclasses (usually NSActionCell). The array should contain a sufficient number of cells to fill the entire row. Extra cells are ignored, unless the matrix is empty. In that case, a matrix is created with one row and enough columns for all the elements of newCells.
This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
NSMatrix.hReturns a Boolean value indicating whether a radio-mode matrix supports an empty selection.
- (BOOL)allowsEmptySelection
YES if it is possible to have no cells selected in a radio-mode matrix; otherwise NO.
NSMatrix.h
Returns a Boolean value indicating whether the matrix automatically resizes it cells.
- (BOOL)autosizesCells
YES if cells are resized proportionally to the receiver when its size changes (and intercell spacing is kept constant). NO if the cell size and intercell spacing remain constant.
NSMatrix.hReturns the background color of the matrix.
- (NSColor *)backgroundColor
The color used to draw the background of the receiver (the space between the cells).
NSMatrix.hReturns the cell at the specified row and column.
- (id)cellAtRow:(NSInteger)row column:(NSInteger)column
The number of the row containing the cell to return.
The number of the column containing the cell to return.
The NSCell object at the specified row and column location specified, or nil if either row or column is outside the bounds of the receiver.
NSMatrix.hReturns the background color of the matrix's cells.
- (NSColor *)cellBackgroundColor
The color used to fill the background of the receiver's cells.
NSMatrix.hReturns the class that the matrix uses to create new cells.
- (Class)cellClass
The subclass of NSCell that the receiver uses when creating new (empty) cells.
NSMatrix.hReturns the frame rectangle of the cell that would be drawn at the specified location.
- (NSRect)cellFrameAtRow:(NSInteger)row column:(NSInteger)column
The row of the cell.
The column of the cell.
The frame rectangle of the cell (whether or not the specified cell actually exists).
NSMatrix.hReturns the cells of the matrix.
- (NSArray *)cells
An array containing the cells of the receiver.
The cells in the array are row-ordered; that is, the first row of cells appears first in the array, followed by the second row, and so forth.
NSMatrix.hReturns the size of each cell in the matrix.
- (NSSize)cellSize
The width and height of each cell in the receiver (all cells in an NSMatrix are the same size).
NSMatrix.hSearches the receiver and returns the last cell matching the specified tag.
- (id)cellWithTag:(NSInteger)anInt
The tag of the cell to return.
The last (when viewing the matrix as a row-ordered array) NSCell object that has a tag matching anInt, or nil if no such cell exists
– selectCellWithTag:– setTag: (NSActionCell)NSMatrix.hReturns the delegate for messages from the field editor.
- (id)delegate
The delegate.
NSMatrix.h
Deselects all cells in the receiver and, if necessary, redisplays the receiver.
- (void)deselectAllCells
If the selection mode is NSRadioModeMatrix and empty selection is not allowed, this method does nothing.
NSMatrix.h
Deselects the selected cell or cells.
- (void)deselectSelectedCell
If the selection mode is NSRadioModeMatrix and empty selection is not allowed, or if nothing is currently selected, this method does nothing. This method doesn’t redisplay the receiver.
NSMatrix.h
Returns the matrix's double-click action method.
- (SEL)doubleAction
The action method sent by the receiver to its target when the user double-clicks an entry or NULL if there’s no double-click action.
The double-click action of an NSMatrix is sent after the appropriate single-click action (for the NSCell clicked or for the NSMatrix if the NSCell doesn’t have its own action). If there is no double-click action and the NSMatrix doesn’t ignore multiple clicks, the single-click action is sent twice.
– action (NSControl)– target (NSControl)– ignoresMultiClick (NSControl)– sendDoubleAction– setDoubleAction:NSMatrix.h
Displays the cell at the specified row and column.
- (void)drawCellAtRow:(NSInteger)row column:(NSInteger)column
The row containing the cell to draw.
The column containing the cell to draw.
– drawCell: (NSControl)– drawCellInside: (NSControl)NSMatrix.hReturns a Boolean value indicating whether the matrix draws its background.
- (BOOL)drawsBackground
YES if the receiver draws its background (the space between the cells); otherwise NO.
NSMatrix.hReturns whether the matrix draws the background within each of its cells.
- (BOOL)drawsCellBackground
YES if the receiver draws the cell background; otherwise NO.
NSMatrix.hObtains the number of rows and columns in the receiver.
- (void)getNumberOfRows:(NSInteger *)rowCount columns:(NSInteger *)columnCount
On return, the number of rows in the matrix.
On return, the number of columns in the matrix.
NSMatrix.hIndicates whether the specified point lies within one of the cells of the matrix and returns the location of the cell within which the point lies.
- (BOOL)getRow:(NSInteger *)row column:(NSInteger *)column forPoint:(NSPoint)aPoint
On return, the row of the cell containing the specified point.
On return, the column of the cell containing the specified point.
The point to locate; this point should be in the coordinate system of the receiver.
YES if the point lies within one of the cells in the receiver; NO if the point falls outside the bounds of the receiver or lies within an intercell spacing.
NSMatrix.hSearches the receiver for the specified cell and returns the row and column of the cell
- (BOOL)getRow:(NSInteger *)row column:(NSInteger *)column ofCell:(NSCell *)aCell
On return, the row in which the cell is located.
On return, the column in which the cell is located.
The cell to locate within the matrix.
YES if the cell is one of the cells in the receiver, NO otherwise.
.
NSMatrix.hHighlights or unhighlights the cell at the specified row and column location.
- (void)highlightCell:(BOOL)flag atRow:(NSInteger)row column:(NSInteger)column
YES to highlight the cell; NO to unhighlight the cell.
The row containing the cell.
The column containing the cell.
NSMatrix.hInitializes a newly allocated matrix with the specified frame.
- (id)initWithFrame:(NSRect)frameRect
The frame with which to initialize the matrix.
The NSMatrix, initialized with default parameters. The new NSMatrix contains no rows or columns. The default mode is NSRadioModeMatrix. The default cell class is NSActionCell.
.
NSMatrix.hInitializes and returns a newly allocated matrix of the specified size using cells of the given class.
- (id)initWithFrame:(NSRect)frameRect mode:(NSInteger)aMode cellClass:(Class)classId numberOfRows:(NSInteger)numRows numberOfColumns:(NSInteger)numColumns
The matrix's frame.
The tracking mode for the matrix; this can be one of the modes described in NSMatrixMode.
The class to use for any cells that the matrix creates and uses. This can be obtained by sending a class message to the desired subclass of NSCell.
The number of rows in the matrix.
The number of columns in the matrix.
The initialized instance of NSMatrix.
This method is the designated initializer for matrices that add cells by creating instances of an NSCell subclass.
NSMatrix.hInitializes and returns a newly allocated matrix of the specified size using the given cell as a prototype.
- (id)initWithFrame:(NSRect)frameRect mode:(NSInteger)aMode prototype:(NSCell *)aCell numberOfRows:(NSInteger)numRows numberOfColumns:(NSInteger)numColumns
The matrix's frame.
The tracking mode for the matrix; this can be one of the modes described in NSMatrixMode.
An instance of a subclass of NSCell, which the new matrix copies when it creates new cells.
The number of rows in the matrix.
The number of columns in the matrix.
This method is the designated initializer for matrices that add cells by copying an instance of an NSCell subclass.
NSMatrix.hInserts a new column of cells at the specified location. .
- (void)insertColumn:(NSInteger)column
The number of the column before which the new column is inserted. If column is greater than the number of columns in the receiver, enough columns are created to expand the receiver to be column columns wide.
New cells are created if needed with makeCellAtRow:column:. This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
If the number of rows or columns in the receiver has been changed with renewRows:columns:, new cells are created only if they’re needed. This fact allows you to grow and shrink an NSMatrix without repeatedly creating and freeing the cells.
NSMatrix.hInserts a new column of cells before the specified column, using the given cells.
- (void)insertColumn:(NSInteger)column withCells:(NSArray *)newCells
The column at which to insert the new cells.
An array of objects to use to fill the new column, starting with the object at index 0. Each object should be an instance of NSCell or one of its subclasses (usually NSActionCell).
If column is greater than the number of columns in the receiver, enough columns are created to expand the receiver to be column columns wide. newCells should either be empty or contain a sufficient number of cells to fill each new column. If newCells is nil or an array with no elements, the call is equivalent to calling insertColumn:. Extra cells are ignored, unless the matrix is empty. In that case, a matrix is created with one column and enough rows for all the elements of newCells.
This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
NSMatrix.hInserts a new row of cells before the specified row.
- (void)insertRow:(NSInteger)row
The location at which to insert the new row. If this is greater than the number of rows in the receiver, enough rows are created to expand the receiver to be row rows high.
New cells are created if needed with makeCellAtRow:column:. This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
If the number of rows or columns in the receiver has been changed with renewRows:columns:, then new cells are created only if they’re needed. This fact allows you to grow and shrink an NSMatrix without repeatedly creating and freeing the cells.
NSMatrix.hInserts a new row of cells before the specified row, using the given cells.
- (void)insertRow:(NSInteger)row withCells:(NSArray *)newCells
The location at which to insert the new row.
An array of objects to use when filling the new row, starting with the object at index 0. Each object in newCells should be an instance of NSCell or one of its subclasses (usually NSActionCell).
If row is greater than the number of rows in the receiver, enough rows are created to expand the receiver to be row rows high. newCells should either be empty or contain a sufficient number of cells to fill each new row. If newCells is nil or an array with no elements, the call is equivalent to calling insertRow:. Extra cells are ignored, unless the matrix is empty. In that case, a matrix is created with one row and enough columns for all the elements of newCells.
This method redraws the receiver. Your code may need to send sizeToCells after sending this method to resize the receiver to fit the newly added cells.
NSMatrix.hReturns the spacing between cells in the matrix.
- (NSSize)intercellSpacing
The vertical and horizontal spacing between cells in the receiver.
NSMatrix.h
Returns a Boolean value indicating whether the receiver is automatically scrolled.
- (BOOL)isAutoscroll
YES if the receiver will be automatically scrolled whenever the cursor is dragged outside the receiver after a mouse-down event within its bounds; otherwise NO.
NSMatrix.hReturns a Boolean value indicating whether the user can drag the cursor to select a rectangle of cells in the matrix.
- (BOOL)isSelectionByRect
YES if the user can select a rectangle of cells in the receiver by dragging the cursor, NO otherwise.
NSMatrix.hReturns the cell that will be clicked when the user presses the Space bar.
- (id)keyCell
The cell that will be clicked when the user presses the Space bar.
NSMatrix.hCreates a new cell at the location specified by the given row and column in the receiver.
- (NSCell *)makeCellAtRow:(NSInteger)row column:(NSInteger)column
The row in which to create the new cell.
The column in which to create the new cell.
The newly created cell.
If the receiver has a prototype cell, it’s copied to create the new cell. If not, and if the receiver has a cell class set, it allocates and initializes (with init) an instance of that class. If the receiver hasn’t had either a prototype cell or a cell class set, makeCellAtRow:column: creates an NSActionCell.
Your code should never invoke this method directly; it’s used by addRow and other methods when a cell must be created. It may be overridden to provide more specific initialization of cells.
NSMatrix.hReturns the selection mode of the matrix.
- (NSMatrixMode)mode
The selection mode of the receiver. Possible return values are defined in NSMatrixM