Last active
December 14, 2025 13:44
-
-
Save jwilling/4186817 to your computer and use it in GitHub Desktop.
Revisions
-
jwilling revised this gist
Dec 7, 2013 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -40,8 +40,8 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSSplitView` makes simple customization like setting priorities and min/max sizes for views is unnecessarily complex. ##NSProgressIndicator## - `NSProgressIndicator` still draws the original progress bar even if drawing is overridden. (rdar://15609817) - `NSProgressIndicator`'s color cannot be changed without workarounds such as Core Image filters. (rdar://15609817) ##NSPopover## - `NSPopover` does not offer a way to customize its appearance apart from the two default styles. -
jwilling revised this gist
Dec 7, 2013 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -21,7 +21,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSTableView` does not fully support sections – all rows in the table are numbered sequentially, rather than as (section #, row #) as `UITableView` does. This makes it difficult to alter sections independently. (rdar://15609306) ##NSCollectionView## - `NSCollectionView` is not performant. It loads every single cell all at once, and it keeps them all in memory. It does not reuse cells. (rdar://15609666) ##NSBrowser## - `NSBrowser` is not view-based like `NSTableView` and `NSOutlineView`. -
jwilling revised this gist
Dec 7, 2013 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -18,7 +18,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##NSTableView## - `NSTableView` has odd animation artifacts when scrolling with the keyboard with a fast key repeat. - Due to the clip view issue mentioned above. (rdar://15609175) - `NSTableView` does not fully support sections – all rows in the table are numbered sequentially, rather than as (section #, row #) as `UITableView` does. This makes it difficult to alter sections independently. (rdar://15609306) ##NSCollectionView## - `NSCollectionView` is not performant. It loads every single cell all at once, and it keeps them all in memory. It does not reuse cells. -
jwilling revised this gist
Dec 7, 2013 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -17,6 +17,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##NSTableView## - `NSTableView` has odd animation artifacts when scrolling with the keyboard with a fast key repeat. - Due to the clip view issue mentioned above. (rdar://15609175) - `NSTableView` does not fully support sections – all rows in the table are numbered sequentially, rather than as (section #, row #) as `UITableView` does. This makes it difficult to alter sections independently. ##NSCollectionView## -
jwilling revised this gist
Dec 7, 2013 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -10,7 +10,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. (rdar://15608948) ##NSClipView## - ~~`NSClipView` has performance issues~~. Improved under 10.9. - [`RBLClipView`](https://github.com/github/Rebel/blob/master/Rebel/RBLClipView.h) attempts to fix this. - `NSClipView` has a poor animation when using `-scrollRectToVisible:`. (rdar://15609175) - [`JNWClipView`](https://github.com/jwilling/JNWScrollView/blob/master/JNWClipView.h) attempts to fix this. -
jwilling revised this gist
Dec 7, 2013 . 1 changed file with 3 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -10,8 +10,10 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. (rdar://15608948) ##NSClipView## - ~`NSClipView` has performance issues~. Improved under 10.9. - [`RBLClipView`](https://github.com/github/Rebel/blob/master/Rebel/RBLClipView.h) attempts to fix this. - `NSClipView` has a poor animation when using `-scrollRectToVisible:`. (rdar://15609175) - [`JNWClipView`](https://github.com/jwilling/JNWScrollView/blob/master/JNWClipView.h) attempts to fix this. ##NSTableView## - `NSTableView` has odd animation artifacts when scrolling with the keyboard with a fast key repeat. -
jwilling revised this gist
Dec 7, 2013 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,7 +7,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - Controls that have cells (such as `NSTextField`) do not respond properly when layer-backed. Take `NSButton` as an example. When not layer-backed, it will animate properly using the animator proxy. When layer-backed, using the animator proxy breaks focus rings (they jump to destination immediately). Currently, directly manipulating the layer of a cell-based control is not supported (and will lead to a broken interface), but is much needed. (rdar://15608822) ##NSViewController## - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. (rdar://15608948) ##NSClipView## - `NSClipView` has performance issues. -
jwilling revised this gist
Dec 6, 2013 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,7 +4,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##NSView## - `NSView` does not have the ability to set an affine transform (rdar://15608609) - Controls that have cells (such as `NSTextField`) do not respond properly when layer-backed. Take `NSButton` as an example. When not layer-backed, it will animate properly using the animator proxy. When layer-backed, using the animator proxy breaks focus rings (they jump to destination immediately). Currently, directly manipulating the layer of a cell-based control is not supported (and will lead to a broken interface), but is much needed. (rdar://15608822) ##NSViewController## - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. -
jwilling revised this gist
Dec 6, 2013 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -3,7 +3,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ---- ##NSView## - `NSView` does not have the ability to set an affine transform (rdar://15608609) - Controls that have cells (such as `NSTextField`) do not respond properly when layer-backed. Take `NSButton` as an example. When not layer-backed, it will animate properly using the animator proxy. When layer-backed, using the animator proxy breaks focus rings (they jump to destination immediately). Currently, directly manipulating the layer of a cell-based control is not supported (and will lead to a broken interface), but is much needed. ##NSViewController## -
jwilling revised this gist
Dec 5, 2012 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,7 +4,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##NSView## - `NSView` does not have the ability to set an affine transform. - Controls that have cells (such as `NSTextField`) do not respond properly when layer-backed. Take `NSButton` as an example. When not layer-backed, it will animate properly using the animator proxy. When layer-backed, using the animator proxy breaks focus rings (they jump to destination immediately). Currently, directly manipulating the layer of a cell-based control is not supported (and will lead to a broken interface), but is much needed. ##NSViewController## - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. -
jwilling revised this gist
Dec 5, 2012 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -81,5 +81,6 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##Misc. (not necessarily AppKit)### - There is no Cocoa wrapper for the Carbon hotkeys API. - [`DGGHotKey`](https://github.com/dannygreg/DGGHotKey) attempts to fix this. - There is no Cocoa wrapper for `FSEvents`. The Spotlight stuff doesn't really work for sandboxed Applications. - There is no API for AirPlay. -
jwilling revised this gist
Dec 5, 2012 . 1 changed file with 6 additions and 7 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -4,7 +4,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##NSView## - `NSView` does not have the ability to set an affine transform. - Controls that have cells (such as `NSTextField`) do not respond properly when layer-backed. Take `NSButton` for an example. When not layer-backed, it will animate properly using the animator proxy. When layer-backed, using the animator proxy breaks focus rings (they jump to destination immediately). Currently, directly manipulating the layer of a cell-based control is not supported (and will lead to a broken interface), but is much needed. ##NSViewController## - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. @@ -18,23 +18,23 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSTableView` does not fully support sections – all rows in the table are numbered sequentially, rather than as (section #, row #) as `UITableView` does. This makes it difficult to alter sections independently. ##NSCollectionView## - `NSCollectionView` is not performant. It loads every single cell all at once, and it keeps them all in memory. It does not reuse cells. ##NSBrowser## - `NSBrowser` is not view-based like `NSTableView` and `NSOutlineView`. ##NSSlider## - `NSSlider` requires use of private method `-_usesCustomTrackImage` in order to completely customize appearance. - `NSSlider` needs a "rounded textured" style for use in window frames (like in Finder). ##NSSearchField## - `NSSearchField` does not support tokens. ##NSTextField## - `NSTextField` does not support a custom context menu when the text is selectable and/or editable. It requires hacking around with the field editor to implement this functionality. ##NSSplitView## - `NSSplitView` makes simple customization like setting priorities and min/max sizes for views is unnecessarily complex. ##NSProgressIndicator## - `NSProgressIndicator` still draws the original progress bar even if drawing is overridden. @@ -57,7 +57,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSPersistentDocument` doesn't support file wrappers (bundles), even though that's a requirement for the sqlite data storage with sandboxing enabled. All workarounds at this point are huge hacks. ##NSObjectController## - While `NSObjectController` and its subclasses (e.g. `NSArrayController`) support retrieving objects from a Core Data managed object context, they do not offer a way to receive per-change notifications. This means that you need to reload your entire view vs. inserting/removing/moving the cells that were updated. Ideally, we would want a port of `NSFetchedResultsController`. ##NSDrawer## - `NSDrawer` should either be deprecated or have its API fully updated to support customization. @@ -81,6 +81,5 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##Misc. (not necessarily AppKit)### - There is no Cocoa wrapper for the Carbon hotkeys API. - There is no Cocoa wrapper for `FSEvents`. The Spotlight stuff doesn't really work for sandboxed Applications. - There is no API for AirPlay. -
jwilling revised this gist
Dec 4, 2012 . 1 changed file with 1 addition and 0 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -81,5 +81,6 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ##Misc. (not necessarily AppKit)### - There is no Cocoa wrapper for the Carbon hotkeys API. - [`DGGHotKey`](https://github.com/dannygreg/DGGHotKey) attempts to fix this. - There is no Cocoa wrapper for `FSEvents`. The Spotlight stuff doesn't really work for sandboxed Applications. - There is no API for AirPlay. -
jwilling revised this gist
Dec 3, 2012 . 1 changed file with 74 additions and 22 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,32 +2,84 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ---- ##NSView## - `NSView` does not have the ability to set an affine transform. - `NSView` and layers, although much improved in 10.8, still do not get along well. The most significant problem is with cell-based controls. ##NSViewController## - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. ##NSClipView## - `NSClipView` has performance issues. - [`RBLClipView`](https://github.com/github/Rebel/blob/master/Rebel/RBLClipView.h) attempts to fix this. ##NSTableView## - `NSTableView` has odd animation artifacts when scrolling with the keyboard with a fast key repeat. - `NSTableView` does not fully support sections – all rows in the table are numbered sequentially, rather than as (section #, row #) as `UITableView` does. This makes it difficult to alter sections independently. ##NSCollectionView## - `NSCollectionView` has no view recycling, poor API design, and is quite lacking compared to `UICollectionView`. ##NSBrowser## - `NSBrowser` is not view-based like `NSTableView` and `NSOutlineView`. ##NSSlider## - `NSSlider` requires use of private method `-_usesCustomTrackImage` in order to completely customize appearance. - `NSSlider` needs a "rounded textured" style for use in window frames. ##NSSearchField## - `NSSearchField` does not support tokens. ##NSTextField## - `NSTextField` doesn't support a custom context menu when the text is selectable and/or editable. It requires hacking around with the field editor to implement this functionality. ##NSSplitView## - `NSSplitView` has a lacking API. Simple customization like setting priorities and min/max sizes for views is unnecessarily complex. ##NSProgressIndicator## - `NSProgressIndicator` still draws the original progress bar even if drawing is overridden. - `NSProgressIndicator`'s color cannot be changed without workarounds such as Core Image filters. ##NSPopover## - `NSPopover` does not offer a way to customize its appearance apart from the two default styles. - [`RBLPopover`](https://github.com/github/Rebel/blob/master/Rebel/RBLPopover.h) attempts to fix this. - `NSPopover` steals keyboard focus. ##NSWindow## - `NSWindow` animation is poor without the use of some not-so-nice hacks. - Borderless `NSWindows` (`NSBorderlessWindowMask`) do not have the ability to round their corners. - Borderless `NSWindows` with a layer-backed content view do not get a shadow. - `NSWindow` is really difficult to customize. - [`INAppStoreWindow`](https://github.com/indragiek/INAppStoreWindow) attempts to fix this. ##NSDocument## - `NSDocument` has very bad support for documents that aren't fully loaded into memory. Nearly all of the API assumes that you can generate a singular `NSData` object to store your document in, which isn't true if half of your document is on disk only and the other half in memory only. - `NSPersistentDocument` doesn't support file wrappers (bundles), even though that's a requirement for the sqlite data storage with sandboxing enabled. All workarounds at this point are huge hacks. ##NSObjectController## - While `NSObjectController` and its subclasses (e.g. `NSArrayController`) support retrieving objects from a Core Data managed object context, they do not offer a way to receive per-change notifications. This means that you need to reload your entire view vs. inserting/removing/moving the cells that were updated. Ideally, we would want a port of NSFetchedResultsController. ##NSDrawer## - `NSDrawer` should either be deprecated or have its API fully updated to support customization. ##NSImage## - `NSImage` does not support drawing stretchable images with caps. - [`RBLResizableImage`](https://github.com/github/Rebel/blob/master/Rebel/RBLResizableImage.h) attempts to fix this. ##Field Editors## - Field editors are conceptually unusual and confusing. ##Cells & Controls## - The use of cells in specific controls such as `NSTextField` and `NSButton` make them difficult to customize. - `NSButtonCell` is poorly thought out. `bezelStyle`,` gradientType`, `buttonType`, `isHighlighted`, `state` and a few more make for a really really confusing subclassing experience. - `NSTextFieldCell` does not have vertically-centered text. A subclass is required. - Template images and window-style engraved text should be useable without the use of captive cells. - AppKit controls need image-based customization properties like their UIKit counterparts. - AppKit does not provide HUD-styled controls. - [`SNRHUDKit`](https://github.com/indragiek/SNRHUDKit) attempts to fix this. - Interface Builder does not support bindings for custom controls. ##Misc. (not necessarily AppKit)### - There is no Cocoa wrapper for the Carbon hotkeys API. - There is no Cocoa wrapper for `FSEvents`. The Spotlight stuff doesn't really work for sandboxed Applications. - There is no API for AirPlay. -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 16 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -1,4 +1,4 @@ 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. ---- @@ -7,7 +7,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `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` is 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`. @@ -17,3 +17,17 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `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. - `NSPopover` steals keyboard focus. - `NSSearchField` does not support tokens. - `NSTableView` does not fully support sections. - `NSDrawer` should either be deprecated or have its API fully updated to support customization. - `NSSlider` needs a "rounded textured" style for use in window frames. - Template images and window-style engraved text should be useable without the use of captive cells. - `NSView` does not support the ability to set an affine transform. - `NSButtonCell` is poorly thought out. `bezelStyle`,` gradientType`, `buttonType`, `isHighlighted`, `state` and a few more make for a really really confusing subclassing experience. - `NSView` and layers, although much improved in 10.8, still do not get along well. The most significant problem is with built-in controls. - `NSDocument` has very bad support for documents that aren't fully loaded into memory. Nearly all of the API assumes that you can generate a singular `NSData` object to store your document in, which isn't true if half of your document is on disk only and the other half in memory only. - `NSPersistentDocument` doesn't support file wrappers (bundles), even though that's a requirement for the sqlite data storage with sandboxing enabled. All workarounds at this point are huge hacks. - Borderless `NSWindows` (`NSBorderlessWindowMask`) do not have the ability to round their corners. - Borderless `NSWindows` with a layer-backed content view do not get a shadow. - `NSPopover` does not offer a way to customize its appearance apart from the two default styles. *([`RBLPopover`](https://github.com/github/Rebel/blob/master/Rebel/RBLPopover.h) attempts to fix this )* -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -12,7 +12,7 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `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. -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 9 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,5 +8,12 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `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. -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 2 additions and 2 deletions.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -5,8 +5,8 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - 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 pretty bad without the use of some not-so-nice hacks. - `NSViewController` could be more useful. It has `-loadView` but no other lifecycle methods. -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 2 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -8,4 +8,5 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSCollectionView` is horrible. No view recycling, and terrible API design. - `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 pretty bad without the use of some not-so-nice hacks. - `NSViewController` is useless. It has `-loadView` but no other lifecycle methods. -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,5 +7,5 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSTableView` has odd animation artifacts when scrolling with the keyboard with a fast key repeat. - `NSCollectionView` is horrible. No view recycling, and terrible API design. - `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 pretty bad without the use of some not-so-nice hacks. -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 1 addition and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -7,5 +7,5 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr - `NSTableView` has odd animation artifacts when scrolling with the keyboard with a fast key repeat. - `NSCollectionView` is horrible. No view recycling, and terrible API design. - `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 pretty bad without the use of some not-so-nice hacks. -
jwilling revised this gist
Dec 2, 2012 . 1 changed file with 7 additions and 1 deletion.There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -2,4 +2,10 @@ Is AppKit causing you frustration? Instead of just complaining about it, lets tr ---- - 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` is horrible. No view recycling, and terrible API design. - `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 pretty bad without the use of some not-so-nice hacks. -
jwilling created this gist
Dec 2, 2012 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,5 @@ 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