# NSComboBox

gerritvd@decillion.net
Generated at 2026-02-17 21:02:56 +0000
1999 Free Software Foundation, Inc.
Class Description

An NSComboBox is what we can call a completion/choices box, derived from NSTextField, it allows you to enter text like in a text field but also to click in the ellipsis button (indicating the fact other user inputs are possible) on the right of it to obtain a list of choices, you can use them as the text field value by selecting a row in this list. You can also obtain direct completion when it is enabled via `setCompletes:` to get a suggested text field value updated as you type.

Like other NSControl classes, NSComboBox is a wrapper around a core piece which implements the combo box behavior, a cell, which is in this case an NSComboBoxCell.

AppKit/NSComboBox.h

No special instructions to use NSComboBox or text to detail the implementation.

addItemWithObjectValue:
object
Adds an item to the combo box cell default items list which is used when `usesDataSource` returns `NO`. In the case `usesDataSource` returns `YES` , this method logs a warning.
addItemsWithObjectValues:
objects
Adds several items in an array to the combo box cell default items list which is used when `usesDataSource` returns `NO`. In the case `usesDataSource` returns `YES`, this method logs a warning.
completes
Returns `YES` when the combo box cell automatic completion is active, returns `NO` otherwise. Take a look at the `setCompletes:` method documentation to know how the automatic completion works.
dataSource
Returns the combo box cell data source object which is reponsible to provide the data to be displayed. To know how to implement a data source object, take a look at the NSComboBoxDataSource informal protocol description. In the case `usesDataSource` returns `NO`, this method logs a warning.
deselectItemAtIndex:
index
Deselects the combo box cell list row at index in the case this row is selected. Posts an NSComboBoxSelectionDidChangeNotification to the default notification center, when there is a new selection.
hasVerticalScroller
Returns `YES` when the combo box cell displays a vertical scroller for its list, returns `NO` otherwise. Take note that the scroller will be displayed even when the sum of the items height in the list is inferior to the minimal height of the list displayed area.
indexOfItemWithObjectValue:
object
Returns the lowest index associated with a value in the combo box cell default items list, which is equal to object, and returns NSNotFound when there is no such value. In the case `usesDataSource` returns `YES` , this method logs a warning.
indexOfSelectedItem
Returns the index of the selected item in the combo box cell list or -1 when there is no selection, the selected item can be related to the data source object in the case `usesDataSource` returns `YES` else to the default items list.
insertItemWithObjectValue:
object
atIndex:
index
Inserts an item in the combo box cell default items list which is used when `usesDataSource` returns `NO`. In the case `usesDataSource` returns `YES` , this method logs a warning.
intercellSpacing
Returns the width and the height (as the values of an NSSize variable) between each item of the combo box cell list.
isButtonBordered
Description forthcoming.
itemHeight
Returns the height of the items in the combo box cell list.
itemObjectValueAtIndex:
index
Returns the object value at index within combo box cell default items list. When the index is beyond the end of the list, an NSRangeException is raised. In the case `usesDataSource` returns `YES` , this method logs a warning.
noteNumberOfItemsChanged
Informs the combo box cell that the number of items in its data source has changed, in order to permit to the scrollers in its displayed list being updated without needing the reload of the data. It is recommended to use this method with a data source that continually receives data in the background, to keep the the combo box cell responsive to the user while the data is received. Take a look at the `NSComboBoxDataSource` informal protocol specification to know more on the messages NSComboBox sends to its data source.
numberOfItems
Returns the number of items in the the combo box cell list, the numbers of items can be be related to the data source object in the case `usesDataSource` returns `YES` else to the default items list.
numberOfVisibleItems
Returns the maximum number of allowed items to be displayed in the combo box cell list.
objectValueOfSelectedItem
Returns the object value of the selected item in the combo box cell default items list or `nil` when there is no selection. In the case `usesDataSource` returns `YES`, this method logs a warning.
objectValues
Returns the combo box cell default items list in an array.
reloadData
Marks the combo box cell in order to have its items list reloaded in the case it uses a data source, and to have it redisplayed.
removeAllItems
Removes all the items in the combo box cell default items list which is used when `usesDataSource` returns `NO`. In the case `usesDataSource` returns `YES`, this method logs a warning.
removeItemAtIndex:
index
Removes the item with the specified index in the combo box cell default items list which is used when `usesDataSource` returns `NO`. In the case `usesDataSource` returns `YES` , this method logs a warning.
removeItemWithObjectValue:
object
Removes an item in the combo box cell default items list which is used when `usesDataSource` returns `NO`. In the case `usesDataSource` returns `YES` , this method logs a warning.
scrollItemAtIndexToTop:
index
Scrolls the combo box cell list vertically in order to have the item at index in the closest position relative to the top. There is no need to have the list displayed when this method is invoked.
scrollItemAtIndexToVisible:
index
Scrolls the combo box cell list vertically in order to have the item at index visible. There is no need to have the list displayed when this method is invoked.
selectItemAtIndex:
index
Selects the combo box cell list row at index. Take note no changes occurs in the combo box cell list when this method is called. Posts an NSComboBoxSelectionDidChangeNotification to the default notification center when there is a new selection different from the previous one.
selectItemWithObjectValue:
object
Selects the first item in the default combo box cell list which is equal to object. In the case `usesDataSource` returns `YES`, this method logs a warning. Take note that this method doesn't update the text field part value. Posts an NSComboBoxSelectionDidChange notification to the default notification center when the new selection is different than the previous one.
setButtonBordered:
flag
Description forthcoming.
setCompletes:
completes
Sets whether the combo box cell automatic completion is active or not. The automatic completion tries to complete what the user types in the text field part, it tries to complete only when the the user adds characters at the end of the string, not when it deletes characters or when the insertion point precedes the end of the string. To do the automatic completion, the `completedString:` method is called, and when the returned string is longer than the current one in the text field, the completion occurs and the completed part gets selected.
setDataSource:
aSource
Sets the combo box cell data source to aSource. Just calling this method doesn't set `usesDataSource` to return `YES`, you must call `setUsesDataSource:` with `YES` before or a warning will be logged. To know how to implement a data source objects, take a look at the NSComboBoxDataSource informal protocol description. When aSource doesn't respond to the methods `numberOfItemsInComboBox:` `comboBox:objectValueForItemAtIndex:`, this method logs a warning.
setHasVerticalScroller:
flag
Sets whether the combo box cell list displays a vertical scroller, by default it is the case. When flag is `NO` and the combo cell list has more items (either in its default list or from its data source) than the number returned by `numberOfVisibleItems`, only a subset of them will be displayed. Uses scroll related methods to position this subset in the combo box cell list. Take note that the scroller will be displayed even when the sum of the items height in the list is inferior to the minimal height of the list displayed area.
setIntercellSpacing:
aSize
Sets the width and the height between each item of the combo box cell list to the values in aSize .
setItemHeight:
itemHeight
Sets the height of the items in the combo box cell list to itemHeight.
setNumberOfVisibleItems:
visibleItems
Sets the maximum number of allowed items to be displayed in the combo box cell list.
setUsesDataSource:
flag
Sets according to flag whether the combo box cell uses a data source (which is external) to populate its items list.
usesDataSource
Returns `YES` when the combo box cell uses a data source (which is external) to populate its items list, otherwise returns `NO` in the case it uses its default list.
Software documentation for the NSComboBoxDataSource protocol
AppKit/NSComboBox.h
NSObject
Description forthcoming.
comboBox:
aComboBox
completedString:
aString
Description forthcoming.
comboBox:
aComboBox
indexOfItemWithStringValue:
string
Description forthcoming.
comboBox:
aComboBox
objectValueForItemAtIndex:
index
Description forthcoming.
numberOfItemsInComboBox:
aComboBox
Description forthcoming.
Software documentation for the NSComboBoxDelegate protocol
AppKit/NSComboBox.h
NSTextFieldDelegate
Description forthcoming.
comboBoxSelectionDidChange:
notification
Description forthcoming.
comboBoxSelectionIsChanging:
notification
Description forthcoming.
comboBoxWillDismiss:
notification
Description forthcoming.
comboBoxWillPopUp:
notification
Description forthcoming.