NSPathCell
The user interface of a path control object.
Declaration
class NSPathCellOverview
NSPathCell maintains a collection of NSPathComponentCell objects that represent a particular path to be displayed to the user.
The path shown can be set with the clickedPathComponentCell method. Doing so removes all displayed NSPathComponentCell objects and automatically fills the control with NSPathComponentCell objects set to have the appropriate icons, display titles, and NSURL values for the particular path component they represent. Alternatively, you can fill the control manually by setting the cell array or directly modifying existing cells.
Both an action and double-click action can be set for the path control. To find out what path component cell was clicked in the action, you can read the value of clickedPathComponentCell. When the style is set to NSPathControl.Style.popUp, the action is still sent, and the clickedPathComponentCell value for the represented menu item is correctly set. The clickedPathComponentCell value is valid only when the action is being sent. It is also valid when the keyboard is used to invoke the action.
Automatic animated expansion of partially hidden NSPathComponentCell objects happens if you correctly call mouseEntered(with:) and mouseExited(with:) for each NSPathComponentCell in the NSPathCell object. This is not required if the pathStyle is set to NSPathControl.Style.popUp, or if you wish to not have the animation.
NSPathCell supports several path display styles. NSPathControl.Style.standard has a light blue background with arrows indicating the path. NSPathStyleNavigationBar has more defined arrows (chevrons) and looks a little like a segmented button. NSPathControl.Style.popUp looks and works like an NSPopUpButton object to display the full path, or, if the cell is editable, select a new path.
If the cell’s isEditable method returns true (the default), you can drag and drop into the cell to change the value. You can constrain what can be dropped using UTIs (Uniform Type Identifiers) with allowedTypes or the appropriate delegate methods on NSPathControl.
If the cell’s isSelectable method returns true (the default), the cell’s contents can automatically be dragged out. The proper UTI, filename, and URL are placed on the pasteboard. You can further control or limit this by using the appropriate delegate methods on NSPathControl.
If the cell is editable and has the path style set to NSPathControl.Style.popUp, an additional item in the pop-up menu allows selecting another location. By default, an NSOpenPanel object is configured based on the allowed types. The NSOpenPanel object can be customized with a delegate method.
Setting the control size
When setting the controlSize property, NSPathCell properly respects the control size for the NSPathControl.Style.standard and NSPathControl.Style.popUp styles. When the control size is set, the new size is propagated to subcells. When the path style is set to NSPathStyleNavigationBar, you cannot change the control size, and it is always set to NSSmallControlSize. Attempting to change the control size when the path style is NSPathStyleNavigationBar causes an assertion. Setting the path style to NSPathStyleNavigationBar forces the control size to be NSSmallControlSize.
Topics
Displaying Hidden Components
Setting the Allowed Types
Setting the Control Style
Setting the Object Value
Setting Cell Appearance
Managing Path Components
pathComponentCellClassrect(of:withFrame:in:)pathComponentCell(at:withFrame:in:)clickedPathComponentCellpathComponentCells