Clone wiki

IGResizableComboBox / Home


An NSComboBox subclass that adds a small draggable bar to allow drag-resizing of the pop-up list.

Inner Workings

NSComboBox generates its pop-up by creating a special NSWindow subclass, NSComboBoxWindow. This pop-up window has an NSScrollView (or subclass thereof) as its content view and uses that to display the choices and (if needed) the scrollbar (via an NSComboTableView, which is a subclass of NSTableView).

IGResizableComboBox inserts its own NSView subclass as the content view of the NSComboBoxWindow and puts the NSScrollView as a subview of this NSView. This NSView is slightly taller than the NSScrollView and the NSView captures mouse dragging events on this extra space to allow resizing.

(The issue related to whether the pop-up was above or below the NSComboBox is resolved as of 408e5cd05064 .)

Comments, etc.: the blog