Is AppKit causing you frustration? Instead of just complaining about it, lets try to make it better by compiling a list of specific problems with AppKit. Leave a comment below, and I'll include it in the list. The list will be sorted according to the number of comments for a problem. ---- - The use of cells in specific controls such as `NSTextField` and `NSButton` make them difficult to customize. - AppKit controls need image-based customization properties like their UIKit counterparts. - `NSTableView` has odd animation artifacts when scrolling with the keyboard with a fast key repeat. - `NSCollectionView` has no view recycling, poor API design, and is lacking compared to `UICollectionView`. - `NSClipView` has performance issues. *([`RBLClipView`](https://github.com/github/Rebel/blob/master/Rebel/RBLClipView.h) attempts to fix this)* - `NSWindow`s are really difficult to customize. *([`INAppStoreWindow`](https://github.com/indragiek/INAppStoreWindow) attempts to fix this)*. - `NSWindow` animation is poor without the use of some not-so-nice hacks. - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. - `NSBrowser` is not view-based like `NSTableView` and `NSOutlineView`. - `NSSplitView` has a lacking API. Simple customization like setting priorities and min/max sizes for views is unnecessarily complex. - AppKit does not provide HUD-styled controls. *([`SNRHUDKit`](https://github.com/indragiek/SNRHUDKit) attempts to fix this)* - `NSSlider` requires use of private method `-_usesCustomTrackImage` in order to completely customize appearance. - `NSProgressIndicator` still draws the original progress bar even if drawing is overridden. - `NSTextFieldCell` does not have vertically-centered text. A subclass is required. - Interface Builder does not support bindings for custom controls.