From 6eca8c8ff9f83073686de71973697f527b64343f Mon Sep 17 00:00:00 2001 From: Alex Gordon Date: Sat, 3 Apr 2010 17:37:08 +0100 Subject: [PATCH] its been so many weeks I cant remember --- CHDocumentationBrowser.xib | 2762 +++---- HTML_Example/nstableview.html | 8019 ++++++++++++++++++++ IGKArrayController.m | 5 +- IGKDocRecordManagedObject.m | 10 + IGKHTMLGenerator.m | 2 + IGKPredicateEditor.h | 16 + IGKPredicateEditor.m | 57 + IGKScraper.m | 4 +- IGKWindowController.h | 2 + IGKWindowController.m | 52 +- Ingredients.xcodeproj/project.pbxproj | 8 + Ingredients_DataModel.xcdatamodel/elements | Bin 263862 -> 263893 bytes Ingredients_DataModel.xcdatamodel/layout | Bin 101280 -> 101431 bytes 13 files changed, 9558 insertions(+), 1379 deletions(-) create mode 100644 HTML_Example/nstableview.html create mode 100644 IGKPredicateEditor.h create mode 100644 IGKPredicateEditor.m diff --git a/CHDocumentationBrowser.xib b/CHDocumentationBrowser.xib index 72809bf..c23fdb1 100644 --- a/CHDocumentationBrowser.xib +++ b/CHDocumentationBrowser.xib @@ -3,7 +3,7 @@ 1060 10C540 - 740 + 759 1038.25 458.00 @@ -16,20 +16,20 @@ YES - 740 - 740 - 1.2.2 + 759 + 759 + 1.2.5 YES - - - - + + + - + + YES @@ -196,1127 +196,1113 @@ 274 YES - + 274 YES - - - 2304 + + + 274 YES - - - 256 - {635, 335} - - YES - - - 256 - {635, 17} - - - - - - -2147483392 - {{620, 0}, {16, 17}} - - - + + + 2304 + YES - - normalIcon - 24 - 24 - 24 - - 75628096 - 134219776 - - - LucidaGrande - 11 - 3100 - - - 6 - System - headerColor - - 3 - MQA - - - - 6 - System - headerTextColor - - + + + 256 + {635, 323} + + YES + + + 256 + {635, 17} + + - - 67239424 - 33554432 - - LucidaGrande - 13 - 1044 - - 0 - 0 - 0 - NO + + + -2147483392 + {{620, 0}, {16, 17}} + - - - xentity - YES - compare: - - - - name - 486 - 40 - 1000 - - 75628096 - 2048 - Name - - - 3 - MC4zMzMzMzI5ODU2AA + + YES + + normalIcon + 24 + 24 + 24 + + 75628096 + 134219776 + + + LucidaGrande + 11 + 3100 + + + 6 + System + headerColor + + 3 + MQA + + + + 6 + System + headerTextColor + + + + + 67239424 + 33554432 + + LucidaGrande + 13 + 1044 + + 0 + 0 + 0 + NO + + + + xentity + YES + compare: + - - - - 337772096 - 2048 - Text Cell - - - - 6 - System - controlBackgroundColor - - 3 - MC42NjY2NjY2NjY3AA + + name + 486 + 40 + 1000 + + 75628096 + 2048 + Name + + + 3 + MC4zMzMzMzI5ODU2AA + + + + + 337772096 + 2048 + Text Cell + + + + 6 + System + controlBackgroundColor + + 3 + MC42NjY2NjY2NjY3AA + + + + 6 + System + controlTextColor + + + + 1 + YES + + + name + YES + compare: - - 6 - System - controlTextColor - + + xcontainername + 116 + 40 + 1000 + + 75628096 + 2048 + Container + + + + + + 337772096 + 2048 + Text Cell + + + + + + + + xcontainername + YES + compare: + - 1 - YES - - - name - YES - compare: - - - - xcontainername - 116 - 40 - 1000 - - 75628096 - 2048 - Container - - - - - - 337772096 - 2048 - Text Cell - - - - - - - - xcontainername - YES - compare: + 3 + 2 + + + 6 + System + gridColor + + 3 + MC41AA + + 17 + -759169024 + + + 4 + 15 + 0 + YES + 0 - 3 - 2 - - - 6 - System - gridColor - - 3 - MC41AA - + {{0, 17}, {635, 323}} + + + + + 4 + + + + -2147483392 + {{620, 17}, {15, 320}} + + + _doScroller: + 0.95522388059701491 + + + + -2147483392 + {{0, 337}, {620, 15}} + + 1 + + _doScroller: + 0.99842767295597479 + + + + 2304 + + YES + - 17 - -759169024 - - - 4 - 15 - 0 - YES - 0 + {635, 17} + + + + + 4 + - {{0, 17}, {635, 335}} - - - - - 4 - - - - -2147483392 - {{620, 17}, {15, 320}} - - - _doScroller: - 0.95522388059701491 - - - - -2147483392 - {{0, 337}, {620, 15}} - - 1 - - _doScroller: - 0.99842767295597479 - - - - 2304 - - YES - - - {635, 17} - - - - - 4 + {635, 340} + + + 560 + + + + + + QSAAAEEgAABBmAAAQZgAAA - - - {635, 352} - - - 560 - - - - - - QSAAAEEgAABBmAAAQZgAAA - - - - 274 - - YES - - - 2304 + + + 266 YES - - - 290 + + + 2304 YES - - - 274 + + + 290 YES - - - 290 + + + 274 YES - - - 257 - {{605, 4}, {18, 18}} - - - -1 - YES - - 67239424 - 134348800 - + - - LucidaGrande-Bold - 12 - 16 - - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType + + + 290 + + YES + + + 257 + {{605, 4}, {18, 18}} + + + -1 + YES + + 67239424 + 134348800 + + + + LucidaGrande-Bold + 12 + 16 - + YES - add - + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + add + + + + + + _addOption: + + -2038284033 + 36 + + LucidaGrande + 12 + 4883 + + 400 + 75 - - _addOption: - - -2038284033 - 36 - - LucidaGrande - 12 - 4883 - - - 400 - 75 - - - - - -2147483391 - {{585, 4}, {18, 18}} - - - -1 - YES - - 67239424 - 134348800 - - - - - YES - - YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - + + + -2147483391 + {{585, 4}, {18, 18}} + + + -1 + YES + + 67239424 + 134348800 + - + + YES - remove - + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + remove + + + + + _deleteOption: + + -2038284033 + 36 + + + 400 + 75 - - _deleteOption: - - -2038284033 - 36 - - - 400 - 75 - - - - - 256 - {{7, 3}, {58, 19}} - - - -1 - YES - - 67239488 - 4196352 - - - - -2038284033 - 36 - - LucidaGrande - 11 - 16 - - - 400 - 75 - - - Any - - 1048576 - 2147483647 - 1 - - NSImage - NSMenuCheckmark - - - NSImage - NSMenuMixedState - - _popUpItemAction: - - - - YES - - - - YES - - + + + 256 + {{7, 3}, {58, 19}} + + + -1 + YES + + 67239488 + 4196352 + + + + -2038284033 + 36 + + LucidaGrande + 11 + 16 + + + 400 + 75 + - All + Any 1048576 2147483647 - - + 1 + + NSImage + NSMenuCheckmark + + + NSImage + NSMenuMixedState + _popUpItemAction: - + + YES + + + + YES + + + + All + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + 3 + YES + YES + 2 - 3 - YES - YES - 2 - - - - - 256 - {{71, 3}, {167, 19}} - - - -1 - YES - - 67239488 - 4196352 - - - -2038284033 - 36 - - - 400 - 75 - - - of the following are true - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - YES - - - - YES - + + + 256 + {{71, 3}, {167, 19}} + + + -1 + YES + + 67239488 + 4196352 + + + -2038284033 + 36 + + + 400 + 75 + + + of the following are true + + 1048576 + 2147483647 + 1 + + + _popUpItemAction: + + + YES + + + + YES + + + + 3 + YES + YES + 2 - 3 - YES - YES - 2 - - - {633, 25} - - - 0 - 0 - - - - YES - - - - 2 - {{7, 3}, {58, 19}} - {{71, 3}, {167, 19}} - - YES - - YES - + {633, 25} + + + 0 + 0 + + + YES - depth - pattern + + - + 2 + {{7, 3}, {58, 19}} + {{71, 3}, {167, 19}} + YES - - - 2 - 0 - 0 - 0 - 0 - + + YES + YES - - + depth + pattern - NO - NO - - - - - YES - - YES - depth - pattern - - - YES - - - - - - 2 - {{7, 3}, {58, 19}} - {{71, 3}, {167, 19}} - - - 0 - 0 - YES - - - - 290 - - YES - - - 257 - {{605, 4}, {18, 18}} - - - -1 - YES - - 67239424 - 134348800 - + - - - YES - + YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - add - + + + 2 + 0 + 0 + 0 + 0 + + YES + + + + NO + NO - - _addOption: - - -2038284033 - 36 - - - 400 - 75 - - - - - -2147483391 - {{585, 4}, {18, 18}} - - - -1 - YES - - 67239424 - 134348800 - - - - + YES - + YES - - YES - AXDescription - NSAccessibilityEncodedAttributesValueType - - - YES - remove - - + depth + pattern + + + YES + + - - _deleteOption: - - -2038284033 - 36 - - - 400 - 75 + 2 + {{7, 3}, {58, 19}} + {{71, 3}, {167, 19}} + + + 0 + 0 + YES - - - 256 - {{37, 3}, {116, 19}} - - - -1 - YES - - 67239488 - 4196352 - - - 3 - valueForKey: - - 1 - - - YES - - 10 - name + + + 290 + + YES + + + 257 + {{605, 4}, {18, 18}} + + + -1 + YES + + 67239424 + 134348800 + + + + + YES + + YES + + YES + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + add + + + + + _addOption: + + -2038284033 + 36 + + + 400 + 75 - - -2038284033 - 36 - - - 400 - 75 - - - Name - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - - YES - - - - YES - - - - Container Name - - 1048576 - 2147483647 - - - _popUpItemAction: - - 3 - valueForKey: - - + + + -2147483391 + {{585, 4}, {18, 18}} + + + -1 + YES + + 67239424 + 134348800 + - + + + YES + + YES + YES - - 10 - xcontainername - + AXDescription + NSAccessibilityEncodedAttributesValueType + + + YES + remove + + + + + + _deleteOption: + + -2038284033 + 36 + + + 400 + 75 + + + + + 256 + {{37, 3}, {116, 19}} + + + -1 + YES + + 67239488 + 4196352 + + + 3 + valueForKey: + + 1 + + + YES + + 10 + name - - + + -2038284033 + 36 + + + 400 + 75 + - Superclass + Name 1048576 2147483647 + 1 _popUpItemAction: - - 3 - valueForKey: - - - YES - - 10 - xsuperclassname + + + + YES + + + + YES + + + + Container Name + + 1048576 + 2147483647 + + + _popUpItemAction: + + 3 + valueForKey: + + + YES + + 10 + xcontainername + + + + + + + + Superclass + + 1048576 + 2147483647 + + + _popUpItemAction: + + 3 + valueForKey: + + + YES + + 10 + superclass + + + + + + + + Conforms to + + 1048576 + 2147483647 + + + _popUpItemAction: + + 3 + valueForKey: + + + YES + + 10 + xconforms + + + - - - - Conforms to + 3 + YES + YES + 2 + + + + + 256 + {{159, 3}, {99, 19}} + + + -1 + YES + + 67239488 + 4196352 + + + + -2038284033 + 36 + + + 400 + 75 + + + contains 1048576 2147483647 + 1 _popUpItemAction: - - 3 - valueForKey: - - - YES - - 10 - xconforms - + + + + YES + + + + YES + + + + begins with + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + ends with + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + is + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + is not + + 1048576 + 2147483647 + + + _popUpItemAction: + + + + + + is like + + 1048576 + 2147483647 + + + _popUpItemAction: + + - + 3 + YES + YES + 2 - 3 - YES - YES - 2 - - - - - 256 - {{159, 3}, {99, 19}} - - - -1 - YES - - 67239488 - 4196352 - - - - -2038284033 - 36 - - - 400 - 75 - - - contains - - 1048576 - 2147483647 - 1 - - - _popUpItemAction: - - - - YES - - - - YES - - - - begins with - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - ends with - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - is - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - is not - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - is like - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - in - - 1048576 - 2147483647 - - - _popUpItemAction: - - - - - - matches - - 1048576 - 2147483647 - - - _popUpItemAction: - - + + + 256 + {{264, 4}, {160, 18}} + + + YES + + 343014976 + 4326400 + + + + YES + + 6 + System + textBackgroundColor + + - 3 - YES - YES - 2 - - - - - 256 - {{264, 4}, {160, 18}} - - - YES - - 343014976 - 4326400 - - - - YES - - 6 - System - textBackgroundColor - - - - - - {{0, 25}, {633, 25}} - - - 1 - 1 - - - - YES - - - - - 3 - {{37, 3}, {116, 19}} - {{159, 3}, {99, 19}} - {{264, 4}, {160, 18}} - - YES - - YES - + {{0, 25}, {633, 25}} + + + 1 + 1 + + + YES - depth - pattern + + + - + 3 + {{37, 3}, {116, 19}} + {{159, 3}, {99, 19}} + {{264, 4}, {160, 18}} + YES - - - 1 - 1 - 0 - 0 - 700 - + + YES + + YES + depth + pattern + + YES - - - + + + 1 + 1 + 0 + 0 + 700 + + YES + + + + + NO + YES + + + + + YES + + YES + depth + pattern + + + YES + + + + + + YES + + YES + depth + pattern + + + YES + + - NO - YES - - - YES - - YES - depth - pattern - - - YES - - - - - - YES - - YES - depth - pattern - - - YES - - - + 3 + {{37, 3}, {116, 19}} + {{159, 3}, {99, 19}} + {{264, 4}, {160, 18}} + + + 0 + 0 + YES - 3 - {{37, 3}, {116, 19}} - {{159, 3}, {99, 19}} - {{264, 4}, {160, 18}} - - - 0 - 0 - YES + {{1, 1}, {633, 86}} + + - {{1, 1}, {633, 74}} - - - - - - YES - - YES - NSRuleEditorItemPBoardType - - - {635, 74} - - - YES - 75 - 25 - YES - NO - YES - 1 - rowType - subrows - criteria - displayValues - boundArray - NSMutableDictionary - - - - - YES - + YES - + YES - criteria - displayValues - rowType - subrows + NSRuleEditorItemPBoardType - + + {635, 86} + + + YES + 75 + 25 + YES + NO + YES + 1 + rowType + subrows + criteria + displayValues + boundArray + NSMutableDictionary + + + + YES - - YES - - - - + YES - - - - - - YES - + + YES + criteria + displayValues + rowType + subrows + + YES - + YES - criteria - displayValues - rowType - subrows + + - + YES - - YES - - - - - - YES - - - - - - + + + + + + YES + YES + + YES + criteria + displayValues + rowType + subrows + + + YES + + YES + + + + + + YES + + + + + + + YES + + + + YES + + + + + YES + + + + - - YES - - - - - YES - - + {635, 86} + + + + + 3 + MC45MTAwMDAwMjYyAA - + 4 + + + + -2147483392 + {{580, 0}, {15, 48}} + + + _doScroller: + 0.95999999999999996 + + + + -2147483392 + {{-100, -100}, {360, 15}} + + 1 + + _doScroller: - {635, 74} - - - - - 3 - MC45MTAwMDAwMjYyAA - - 4 - - - - -2147483392 - {{620, 0}, {15, 74}} - - - _doScroller: - 0.98666666666666669 - - - - -2147483392 - {{-100, -100}, {360, 15}} - - 1 - - _doScroller: + {{0, 340}, {635, 86}} + + + 528 + + + - {{0, 352}, {635, 74}} + {635, 426} - - 528 - - - + NSView @@ -1456,6 +1442,7 @@ NO YES YES + NO 0.30000001192092896 0.0 @@ -1600,6 +1587,7 @@ YES NO YES + NO 0.30000001192092896 0.0 @@ -1899,6 +1887,7 @@ NO YES YES + NO 0.30000001192092896 0.0 @@ -2312,6 +2301,7 @@ NO YES YES + NO 0.30000001192092896 0.0 @@ -2926,6 +2916,22 @@ 585 + + + searchViewTableScrollView + + + + 588 + + + + searchViewPredicateEditorScrollView + + + + 589 + @@ -3073,8 +3079,7 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA YES - - + Advanced View @@ -3090,211 +3095,70 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA - 90 - + 122 + YES - - - + - - - - 91 - - + - 92 - - + 123 + + - 93 - + 189 + YES - - + - + + Two Pane View - 111 - + 190 + YES - - - - + + - + + Two Pane Split View - 112 - - + 191 + + + YES + + + + - 113 - - + 192 + + - 114 - + 232 + YES - - - + + + - + - 115 - - - - - 116 - - - YES - - - - - - 117 - - - YES - - - - - - 118 - - - - - 119 - - - - - 122 - - - YES - - - - - - 123 - - - - - 161 - - - YES - - - - - - - 162 - - - YES - - - - - - - 163 - - - - - 164 - - - - - 165 - - - YES - - - - - - 166 - - - - - 189 - - - YES - - - - Two Pane View - - - 190 - - - YES - - - - - Two Pane Split View - - - 191 - - - YES - - - - - - - 192 - - - - - 232 - - - YES - - - - - - - - 233 - - + 233 + + 234 @@ -3344,57 +3208,6 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA - - 296 - - - YES - - - - - - - 301 - - - YES - - - - - - - - - - - - - 302 - - - - - 303 - - - - - 304 - - - - - 305 - - - - - 306 - - - 327 @@ -3448,28 +3261,6 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA - - 348 - - - YES - - - - - - - - - 356 - - - - - 357 - - - 365 @@ -3588,217 +3379,429 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA YES - - - - 410 - - + + + + 410 + + + + + 417 + + + + + 421 + + + YES + + + + + + 422 + + + + + 425 + + + + + 426 + + + YES + + + + + + 427 + + + + + 429 + + + YES + + + + + + 430 + + + + + 434 + + + YES + + + + + + 435 + + + + + 456 + + + Docsets Controller + + + 464 + + + + + 495 + + + Advanced Array Controller + + + 565 + + + + + 571 + + + YES + + + + + + 572 + + + YES + + + + + + + + + 573 + + + YES + + + + + + 574 + + + + + 575 + + + YES + + + + + + 576 + + + + + 577 + + + YES + + + + + + 578 + + + + + 579 + + + + + 194 + + + + + 195 + + + + + 590 + + + YES + + + + + + + 90 + + + YES + + + + + - 412 - + 93 + YES - + + - + - 414 - - + 92 + + - 417 - - + 91 + + - 421 - + 296 + YES - + + - + - 422 - - + 161 + + + YES + + + + - 425 - - + 165 + + + YES + + + - 426 - + 162 + YES - + + - + - 427 - - + 164 + + - 429 - - - YES - - - + 163 + + - 430 - - + 166 + + - 434 - + 348 + YES - + + + + - + - 435 - - + 301 + + + YES + + + + + + + + - 456 - - - Docsets Controller + 515 + + - 464 - - + 306 + + - 495 - - - Advanced Array Controller + 305 + + - 515 - + 304 + - 516 - + 303 + - 517 - + 302 + + + 519 + + + 518 - 519 - + 357 + - 565 - - + 356 + + - 571 - + 111 + YES - + + + + - + - 572 - - - YES - - - - - - + 115 + + - 573 - + 114 + YES - + + + - + - 574 - - + 113 + + - 575 - + 112 + + + + + 412 + YES - + - - - - 576 - - + - 577 - + 117 + YES - + - + - 578 - - + 116 + + + YES + + + - 579 - - + 119 + + - 194 - - + 118 + + - 195 - - + 414 + + @@ -3925,6 +3928,7 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA 90.IBPluginDependency 91.IBPluginDependency 92.IBPluginDependency + 93.CustomClassName 93.IBPluginDependency @@ -4048,6 +4052,7 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin com.apple.InterfaceBuilder.CocoaPlugin + IGKPredicateEditor com.apple.InterfaceBuilder.CocoaPlugin @@ -4067,7 +4072,7 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA - 585 + 590 @@ -4188,6 +4193,14 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA IGKNoSelectionOuterView.h + + IGKPredicateEditor + NSPredicateEditor + + IBProjectSource + IGKPredicateEditor.h + + IGKShyTableView NSTableView @@ -4287,7 +4300,9 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA searchView searchViewField searchViewPredicateEditor + searchViewPredicateEditorScrollView searchViewTable + searchViewTableScrollView sideSearchContainer sideSearchController sideSearchView @@ -4323,7 +4338,9 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA NSView NSSearchField NSPredicateEditor + NSScrollView NSTableView + NSScrollView NSView IGKArrayController NSView @@ -5191,6 +5208,7 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA 0 + IBCocoaFramework com.apple.InterfaceBuilder.CocoaPlugin.macosx @@ -5202,5 +5220,9 @@ ZQCUhAEqhIQLe0NHU2l6ZT1kZH2aAIOQAAAAAAAAAIaGA YES Ingredients.xcodeproj 3 + + NSApplicationIcon + {128, 128} + diff --git a/HTML_Example/nstableview.html b/HTML_Example/nstableview.html new file mode 100644 index 0000000..913c5b3 --- /dev/null +++ b/HTML_Example/nstableview.html @@ -0,0 +1,8019 @@ + + + + +NSTableView + + + + +
+
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD!
+ HELLO WORLD! +
+
+ +
+ + +
+

NSTableView

An NSTableView object displays data for a set of related records, with rows representing individual records and columns representing the attributes of those records. +

A table view is usually displayed in a scroll view, like this: +

+ +
+ +
+

Setting the Data Source

+ +

Loading Data

+ +

Target-action Behavior

+ +

Configuring Behavior

+ +

Setting Display Attributes

+ +

Column Management

+ +

Selecting Columns and Rows

+ +

Managing Type Select

+ +

Getting and Setting Column Focus

+ +

Table Dimensions

+ +

Displaying Cell

+ +

Editing Cells

+ +

Setting Auxiliary Views

+ +

Layout Support

+ +

Drawing

+ +

Scrolling

+ +

Persistence

+ +

Setting the Delegate

+ +

Highlightable Column Headers

+ +

Dragging

+ +

Sorting

+ +

Text Delegate Methods

+ +

Deprecated Methods

+ +
+ +
+
+
+ +
+

addTableColumn:

+

Adds a given column as the last column of the receiver. +

+

- (void)addTableColumn:(NSTableColumn *)aColumn +

+
+

aColumn The column to add to the receiver. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– removeTableColumn:
– sizeLastColumnToFit
+
+ + +
+

allowsColumnReordering

+

Returns a Boolean value that indicates whether the receiver allows the user to rearrange columns by dragging their headers. +

+

- (BOOL)allowsColumnReordering +

+
+

Returns YES to allow the user to rearrange columns by dragging their headers, otherwise NO. +

+
+
+ +

The default is YES. You can rearrange columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– moveColumn:toColumn:
– setAllowsColumnReordering:
+
+ + +
+

allowsColumnResizing

+

Returns a Boolean value that indicates whether the receiver allows the user to resize columns by dragging between their headers. +

+

- (BOOL)allowsColumnResizing +

+
+

Returns YES if the receiver allows the user to resize columns by dragging between their headers, otherwise NO. +

+
+
+ +

The default is YES. You can resize columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setAllowsColumnResizing:
+
+ + +
+

allowsColumnSelection

+

Returns a Boolean value that indicates whether the receiver allows the user to select columns by clicking their headers. +

+

- (BOOL)allowsColumnSelection +

+
+

Returns YES if the receiver allows the user to select columns by clicking their headers, otherwise NO. +

+
+
+ +

The default is NO. You can select columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnReordering
– selectColumn:byExtendingSelection:
– setAllowsColumnSelection:
+
+ + +
+

allowsEmptySelection

+

Returns a Boolean value that indicates whether the receiver allows the user to select zero columns or rows. +

+

- (BOOL)allowsEmptySelection +

+
+

Returns YES if the receiver allows the user to select zero columns or rows, otherwise NO. +

+
+
+ +

The default is YES. +

You cannot set an empty selection programmatically if this setting is NO, unlike with the other settings that affect selection behavior. +

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– deselectAll:
– deselectColumn:
– deselectRow:
– setAllowsEmptySelection:
+
+ + +
+

allowsMultipleSelection

+

Returns a Boolean value that indicates whether the receiver allows the user to select more than one column or row at a time. +

+

- (BOOL)allowsMultipleSelection +

+
+

Returns YES if the receiver allows the user to select more than one column or row at a time, otherwise NO. +

+
+
+ +

The default is NO. You can select multiple columns or rows programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– selectColumn:byExtendingSelection:
– selectRow:byExtendingSelection:
– setAllowsMultipleSelection:
+
+ + +
+

allowsTypeSelect

+

Returns a Boolean value that indicates whether the receiver allows the user to type characters to select rows. +

+

- (BOOL)allowsTypeSelect +

+
+

Returns YES if the receiver allows type selection, otherwise NO. +

+
+
+ +

The default value is YES. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.5+NSTableView.h– setAllowsTypeSelect:
+
+ + +
+

autosaveName

+

Returns the name under which table information is automatically saved. +

+

- (NSString *)autosaveName +

+
+

Returns The name under which table information is automatically saved. If no name has been set, returns nil. +

+
+
+ +

The table information is saved separately for each user and for each application that user uses. +

Note that even when a table view has an autosave name, it may not be saving table information automatically. To check whether table information is being saved automatically, use autosaveTableColumns. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveTableColumns
– setAutosaveName:
+
+ + +
+

autosaveTableColumns

+

Returns a Boolean value that indicates whether the order and width of the receiver’s columns are automatically saved. +

+

- (BOOL)autosaveTableColumns +

+
+ +

The table information is saved separately for each user and for each application that user uses. Note that if autosaveName returns nil, this setting is ignored and table information isn’t saved. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveName
– setAutosaveName:
– setAutosaveTableColumns:
+
+ + +
+

backgroundColor

+

Returns the color used to draw the background of the receiver. +

+

- (NSColor *)backgroundColor +

+
+

Returns The color used to draw the background of the receiver. +

+
+
+ +

The default background color is light gray. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setBackgroundColor:
+
+ + +
+

canDragRowsWithIndexes:atPoint:

+

Returns whether the receiver allows dragging the rows at rowIndexes with a drag initiated at mousedDownPoint. +

+

- (BOOL)canDragRowsWithIndexes:(NSIndexSet *)rowIndexes atPoint:(NSPoint)mouseDownPoint +

+
+ +

Return NO to disallow the drag. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

clickedColumn

+

Returns the index of the column the user clicked to trigger an action message. +

+

- (NSInteger)clickedColumn +

+
+

Returns The index of the column the user clicked to trigger an action message. Returns –1 if the user clicked in an area of the table view not occupied by columns. +

+
+
+ +

The return value of this method is meaningful only in the target’s implementation of the action or double-action method. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– clickedRowAnimatedTableView
– setDoubleAction:DragNDropOutlineView
PhotoSearch
+
+ + +
+

clickedRow

+

Returns the index of the row the user clicked to trigger an action message. +

+

- (NSInteger)clickedRow +

+
+

Returns The index of the row the user clicked to trigger an action message. Returns –1 if the user clicked in an area of the table view not occupied by table rows. +

+
+
+ +

The return value of this method is meaningful only in the target’s implementation of the action or double-action method. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– clickedColumnAnimatedTableView
– setDoubleAction:DragNDropOutlineView
PhotoSearch
WhackedTV
+
+ + +
+

columnAtPoint:

+

Returns the index of the column a given point lies in. +

+

- (NSInteger)columnAtPoint:(NSPoint)aPoint +

+
+

aPoint A point in the coordinate system of the receiver. +

+

Returns The index of the column aPoint lies in, or –1 if aPoint lies outside the receiver’s bounds. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– rowAtPoint:
+
+ + +
+

columnAutoresizingStyle

+

Returns the receiver’s column autoresizing style. +

+

- (NSTableViewColumnAutoresizingStyle)columnAutoresizingStyle +

+
+

Returns The receiver’s column autoresizing style. For possible values, see “Autoresizing Styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.4+NSTableView.h– setColumnAutoresizingStyle:
+
+ + +
+

columnIndexesInRect:

+

Returns the indexes of the receiver’s columns that intersect the specified rectangle. +

+

- (NSIndexSet *)columnIndexesInRect:(NSRect)rect +

+
+

rect The rectangle in the receiver’s coordinate system to test for column enclosure. +

+

Returns New NSIndexSet object containing the indexes of the receiver’s columns that intersect with rect. +

+
+
+ +

Columns that return YES for the NSTableColumn method isHidden are excluded from the results. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.5+NSTableView.h
+
+ + +
+

columnWithIdentifier:

+

Returns the index of the first column in the receiver whose identifier is equal to a given identifier. +

+

- (NSInteger)columnWithIdentifier:(id)anObject +

+
+

anObject A column identifier. +

+

Returns The index of the first column in the receiver whose identifier is equal to anObject (when compared using isEqual:) or –1 if no columns are found with the specified identifier. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– tableColumnWithIdentifier:
+
+ + +
+

cornerView

+

Returns the view used to draw the area to the right of the column headers and above the vertical scroller of the enclosing scroll view. +

+

- (NSView *)cornerView +

+
+

Returns The view used to draw the area to the right of the column headers and above the vertical scroller of the enclosing NSScrollView object. +

+
+
+ +

This is by default a simple view that merely fills in its frame, but you can replace it with a custom view using setCornerView:. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– headerView
+
+ + +
+

dataSource

+

Returns the object that provides the data displayed by the receiver. +

+

- (id < NSTableViewDataSource >)dataSource +

+
+

Returns The object that provides the data displayed by the receiver. +

+
+
+ +

See Using a Table Data Source and the NSTableDataSource informal protocol specification for more information. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setDataSource:CocoaAUHost
+
+ + +
+

delegate

+

Returns the receiver’s delegate. +

+

- (id < NSTableViewDelegate >)delegate +

+
+

Returns The receiver’s delegate. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setDelegate:AnimatedTableView
People
+
+ + +
+

deselectAll:

+

Deselects all selected rows or columns if empty selection is allowed; otherwise does nothing. +

+

- (void)deselectAll:(id)sender +

+
+

sender Typically the object that sent the message. +

+
+
+ +

Posts NSTableViewSelectionDidChangeNotification to the default notification center if the selection does in fact change. +

As a target-action method, deselectAll: checks with the delegate before changing the selection, using selectionShouldChangeInTableView:. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– allowsEmptySelectionDragNDropOutlineView
– selectAll:EnhancedAudioBurn
– selectColumn:byExtendingSelection:EnhancedDataBurn
QTKitMovieShuffler
+
+ + +
+

deselectColumn:

+

Deselects the column at a given index if it’s selected. +

+

- (void)deselectColumn:(NSInteger)columnIndex +

+
+

columnIndex The index of the column to deselect. +

+
+
+ +

Deselects the column at columnIndex if it’s selected, regardless of whether empty selection is allowed. +

If the selection does in fact change, posts NSTableViewSelectionDidChangeNotification to the default notification center. +

If the indicated column was the last column selected by the user, the column nearest it effectively becomes the last selected column. In case of a tie, priority is given to the column on the left. +

This method doesn’t check with the delegate before changing the selection. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsEmptySelection
– selectRow:byExtendingSelection:
– selectedColumn
+
+ + +
+

deselectRow:

+

Deselects the row at a given index if it’s selected. +

+

- (void)deselectRow:(NSInteger)rowIndex +

+
+

rowIndex The index of the row to deselect. +

+
+
+ +

Deselects the row at rowIndex if it’s selected, regardless of whether empty selection is allowed. +

If the selection does in fact change, posts NSTableViewSelectionDidChangeNotification to the default notification center. +

If the indicated row was the last row selected by the user, the row nearest it effectively becomes the last selected row. In case of a tie, priority is given to the row above. +

This method doesn’t check with the delegate before changing the selection. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– allowsEmptySelectionXMLBrowser
– selectedRow
+
+ + +
+

doubleAction

+

Returns the message sent to the target when the user double-clicks a column header or an uneditable cell. +

+

- (SEL)doubleAction +

+
+

Returns The message the receiver sends to its target when the user double-clicks a column header or an uneditable cell. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setDoubleAction:
+
+ + +
+

dragImageForRowsWithIndexes:tableColumns:event:offset:

+

Computes and returns an image to use for dragging. +

+

- (NSImage *)dragImageForRowsWithIndexes:(NSIndexSet *)dragRows tableColumns:(NSArray *)tableColumns event:(NSEvent *)dragEvent offset:(NSPointPointer)dragImageOffset +

+
+ +

Override this to return a custom image. dragRows represents the rows participating in the drag. tableColumns represents the table columns that should be in the output image. dragEvent is a reference to the mouse-down event that began the drag. dragImageOffset is an in/out parameter. +

This method is called with dragImageOffset set to NSZeroPoint, but it can be modified to reposition the returned image. A dragImageOffset of NSZeroPoint will cause the image to be centered under the cursor. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

draggingDestinationFeedbackStyle

+

Returns the feedback style displayed when the user drags over the table view. +

+

- (NSTableViewDraggingDestinationFeedbackStyle)draggingDestinationFeedbackStyle +

+
+

Returns The dragging feedback style. See “NSTableViewDraggingDestinationFeedbackStyle” for the possible values. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– setDraggingDestinationFeedbackStyle:
+
+ + +
+

drawBackgroundInClipRect:

+

Draws the background in the clip rect specified by clipRect. +

+

- (void)drawBackgroundInClipRect:(NSRect)clipRect +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.3+NSTableView.h
+
+ + +
+

drawGridInClipRect:

+

Draws the grid lines within aRect, using the grid color set with setGridColor:. +

+

- (void)drawGridInClipRect:(NSRect)aRect +

+
+ +

This method draws a grid regardless of whether the receiver is set to draw one automatically. +

Subclasses can override this method to draw grid lines other than the standard ones. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawRow:clipRect:
– drawsGrid
– gridColor
– highlightSelectionInClipRect:
– setIntercellSpacing:
+
+ + +
+

drawRow:clipRect:

+

Draws the cells for the row at rowIndex in the columns that intersect clipRect. +

+

- (void)drawRow:(NSInteger)rowIndex clipRect:(NSRect)clipRect +

+
+ +

Sends tableView:willDisplayCell:forTableColumn:row: to the delegate before drawing each cell. +

Subclasses can override this method to customize their appearance. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– columnsInRect:
– drawGridInClipRect:
– highlightSelectionInClipRect:
+
+ + +
+

editColumn:row:withEvent:select:

+

Edits the cell at columnIndex and rowIndex, selecting its entire contents if flag is YES. +

+

- (void)editColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex withEvent:(NSEvent *)theEvent select:(BOOL)flag +

+
+ +

This method is invoked automatically in response to user actions; you should rarely need to invoke it directly. theEvent is usually the mouse event that triggered editing; it can be nil when starting an edit programmatically. +

This method scrolls the receiver so that the cell is visible, sets up the field editor, and sends selectWithFrame:inView:editor:delegate:start:length: and editWithFrame:inView:editor:delegate:event: to the field editor’s NSCell object with the NSTableView as the text delegate. +

The row at rowIndex must be selected prior to calling editColumn:row:withEvent:select:, or an exception will be raised. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– editedColumnDragNDropOutlineView
– editedRowIdentitySample
SourceView
+
+ + +
+

editedColumn

+

Returns the index of the column being edited. +

+

- (NSInteger)editedColumn +

+
+

Returns If sent during editColumn:row:withEvent:select:, the index of the column being edited; otherwise –1. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hAnimatedTableView
People
+
+ + +
+

editedRow

+

Returns the index of the row being edited. +

+

- (NSInteger)editedRow +

+
+

Returns If sent during editColumn:row:withEvent:select:, the index of the row being edited; otherwise –1. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hAnimatedTableView
People
+
+ + +
+

focusedColumn

+

Returns the currently focused column. +

+

- (NSInteger)focusedColumn +

+
+

Returns The index of the column, or -1 if there is no focused column +

+
+
+ +

The focus interaction will always be on the selectedRow of the table. If the selectedRow is a full width cell, then focusedColumn will return 1 when focused.. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– setFocusedColumn:
– shouldFocusCell:atColumn:row:
+
+ + +
+

frameOfCellAtColumn:row:

+

Returns a rectangle locating the cell that lies at the intersection of columnIndex and rowIndex. +

+

- (NSRect)frameOfCellAtColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex +

+
+

columnIndex The index of the column containing the cell whose rectangle you want. +

+

rowIndex The index of the row containing the cell whose rectangle you want. +

+

Returns A rectangle locating the cell that lies at the intersection of columnIndex and rowIndex. Returns NSZeroRect if columnIndex or rowIndex is greater than the number of columns or rows in the receiver. +

+
+
+ +

You can use this method to update a single cell more efficiently than sending the table view a reloadData message. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– rectOfColumn:AnimatedTableView
– rectOfRow:DragNDropOutlineView
PhotoSearch
+
+ + +
+

gridColor

+

Returns the color used to draw grid lines. +

+

- (NSColor *)gridColor +

+
+

Returns The color used to draw grid lines. +

+
+
+ +

The default color is gray. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawGridInClipRect:
– drawsGrid
– setGridColor:
+
+ + +
+

gridStyleMask

+

Returns the receiver’s grid style mask. +

+

- (NSUInteger)gridStyleMask +

+
+

Returns The receiver’s grid style mask. Possible return values are described in “Grid styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– setGridStyleMask:
+
+ + +
+

headerView

+

Returns the NSTableHeaderView object used to draw headers over columns. +

+

- (NSTableHeaderView *)headerView +

+
+

Returns The NSTableHeaderView object used to draw headers over columns, or nil if the receiver has no header view +

+
+
+ +

See The Parts of a Table and the NSTableHeaderView class specification for more information. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setHeaderView:
+
+ + +
+

highlightSelectionInClipRect:

+

Highlights the region of the receiver in clipRect. +

+

- (void)highlightSelectionInClipRect:(NSRect)clipRect +

+
+ +

This method is invoked before drawRow:clipRect:. +

Subclasses can override this method to change the manner in which they highlight selections. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawGridInClipRect:
+
+ + +
+

highlightedTableColumn

+

Returns the table column highlighted in the receiver. +

+

- (NSTableColumn *)highlightedTableColumn +

+
+

Returns The table column highlighted in the receiver. +

+
+
+ +

A highlightable column header can be used in conjunction with row selection to highlight a particular column of the table. An example of this is how the Mail application indicates the currently sorted column. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setHighlightedTableColumn:
+
+ + +
+

indicatorImageInTableColumn:

+

Returns the indicator image of a given table column. +

+

- (NSImage *)indicatorImageInTableColumn:(NSTableColumn *)aTableColumn +

+
+

aTableColumn A table column in the receiver. +

+
+
+ +

An indicator image is an arbitrary (small) image that is rendered on the right side of the column header. An example of its use is in Mail to indicate the sorting direction of the currently sorted column in a mailbox. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setIndicatorImage:inTableColumn:
+
+ + +
+

intercellSpacing

+

Returns the horizontal and vertical spacing between cells. +

+

- (NSSize)intercellSpacing +

+
+

Returns The horizontal and vertical spacing between cells. +

+
+
+ +

The default spacing is (3.0, 2.0). +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setDrawsGrid:MP3 Player
– setIntercellSpacing:
+
+ + +
+

isColumnSelected:

+

Returns a Boolean value that indicates whether the column at a given index is selected. +

+

- (BOOL)isColumnSelected:(NSInteger)columnIndex +

+
+

columnIndex The index of the column to test. +

+

Returns YES if the column at columnIndex is selected, otherwise NO. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– selectColumn:byExtendingSelection:
– selectedColumn
– selectedColumnEnumerator
+
+ + +
+

isRowSelected:

+

Returns a Boolean value that indicates whether the row at a given index is selected. +

+

- (BOOL)isRowSelected:(NSInteger)rowIndex +

+
+

rowIndex The index of the row to test. +

+

Returns YES if the row at rowIndex is selected, otherwise NO. +

+
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– selectRow:byExtendingSelection:DragNDropOutlineView
– selectedRow
– selectedRowEnumerator
+
+ + +
+

moveColumn:toColumn:

+

Moves the column and heading at a given index to a new given index. +

+

- (void)moveColumn:(NSInteger)columnIndex toColumn:(NSInteger)newIndex +

+
+

columnIndex The current index of the column to move. +

+

newIndex The new index for the moved column. +

+
+
+ +

This method posts NSTableViewColumnDidMoveNotification to the default notification center. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

noteHeightOfRowsWithIndexesChanged:

+

Informs the receiver that the rows specified in indexSet have changed height. +

+

- (void)noteHeightOfRowsWithIndexesChanged:(NSIndexSet *)indexSet +

+
+ +

If the delegate implements tableView:heightOfRow: this method immediately re-tiles the table view using the row heights the delegate provides. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

noteNumberOfRowsChanged

+

Informs the receiver that the number of records in its data source has changed. +

+

- (void)noteNumberOfRowsChanged +

+
+ +

This method allows the receiver to update the scrollers in its scroll view without actually reloading data into the receiver. It’s useful for a data source that continually receives data in the background over a period of time, in which case the table view can remain responsive to the user while the data is received. +

See the NSTableDataSource informal protocol specification for information on the messages an NSTableView object sends to its data source. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– reloadDataNewsReader
+
+ + +
+

numberOfColumns

+

Returns the number of columns in the receiver. +

+

- (NSInteger)numberOfColumns +

+
+

Returns The number of columns in the receiver. +

+
+
+ +

The value returned includes table columns that are currently hidden. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– numberOfRowsNSOperationSample
+
+ + +
+

numberOfRows

+

Returns the number of rows in the receiver. +

+

- (NSInteger)numberOfRows +

+
+

Returns The number of rows in the receiver. +

+
+
+ +

Typically you should not ask the table view how many rows it has; instead you should interrogate the table view's data source. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– numberOfColumnsEnhancedAudioBurn
iSpend
MP3 Player
PDFKitLinker2
QTAudioExtractionPanel
+
+ + +
+

numberOfSelectedColumns

+

Returns the number of selected columns. +

+

- (NSInteger)numberOfSelectedColumns +

+
+

Returns The number of selected columns. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– numberOfSelectedRows
– selectedColumnEnumerator
+
+ + +
+

numberOfSelectedRows

+

Returns the number of selected rows. +

+

- (NSInteger)numberOfSelectedRows +

+
+

Returns The number of selected rows. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– numberOfSelectedColumnsDragNDropOutlineView
– selectedRowEnumeratorEnhancedAudioBurn
+
+ + +
+

performClickOnCellAtColumn:row:

+

Performs a click action on the cell at the specified row and column. +

+

- (void)performClickOnCellAtColumn:(NSInteger)column row:(NSInteger)row +

+
+

column The column of the cell. +

+

row The row of the cell. +

+
+
+ +

Acquires the preparedCellAtColumn:row:, copies it, invokes performClick: or performClickWithFrame:inView: (if the cell is an NSPopUpButtonCell), and then updates the datasource, if required. This method does not do any checks to see if the cell is enabled. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.6+NSTableView.h
+
+ + +
+

preparedCellAtColumn:row:

+

Returns the fully prepared cell that the receiver will use for drawing or processing of the specified row and column. +

+

- (NSCell *)preparedCellAtColumn:(NSInteger)column row:(NSInteger)row +

+
+

column The column index for which to return the appropriate cell. +

+

row The row index for which to return the appropriate cell. +

+

Returns New NSCell subclass instance to use for the specified row and column. The value for the cell is correctly set, and the delegate method tableView:willDisplayCell:forTableColumn:row: will have been called. +

+
+
+ +

You can override this method to do any additional cell set up that is required, or invoke it to retrieve a cell that has its contents configured for the specified column and row. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.5+NSTableView.hDragNDropOutlineView
PhotoSearch
+
+ + +
+

rectOfColumn:

+

Returns the rectangle containing the column at a given index. +

+

- (NSRect)rectOfColumn:(NSInteger)columnIndex +

+
+

columnIndex The index of a column in the receiver. +

+

Returns The rectangle containing the column at columnIndex. Returns NSZeroRect if columnIndex lies outside the range of valid column indices for the receiver. +

+
+
+ +

You can use this method to update a single column more efficiently than sending the table view a reloadData message. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– frameOfCellAtColumn:row:
– rectOfRow:
+
+ + +
+

rectOfRow:

+

Returns the rectangle containing the row at a given index. +

+

- (NSRect)rectOfRow:(NSInteger)rowIndex +

+
+

Returns The rectangle containing the row at rowIndex. Returns NSZeroRect if rowIndex lies outside the range of valid row indices for the receiver. +

+
+
+ +

You can use this method to update a single row more efficiently than sending the table view a reloadData message. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– frameOfCellAtColumn:row:DragNDropOutlineView
– rectOfColumn:NewsReader
+
+ + +
+

reloadData

+

Marks the receiver as needing redisplay, so it will reload the data for visible cells and draw the new values. +

+

- (void)reloadData +

+
+ +

This method forces redraw of all the visible cells in the receiver. If you want to update the value in a single cell, column, or row, it is more efficient to use frameOfCellAtColumn:row:, rectOfColumn:, or rectOfRow: in conjunction with setNeedsDisplayInRect: (NSView). If you just want to update the scroller, use noteNumberOfRowsChanged; if the height of a set of rows changes, use noteHeightOfRowsWithIndexesChanged:. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– frameOfCellAtColumn:row:DragNDropOutlineView
– noteHeightOfRowsWithIndexesChanged:QTAudioContextInsert
– noteNumberOfRowsChangedQTAudioExtractionPanel
– rectOfColumn:WhackedTV
– rectOfRow:With and Without Bindings
+
+ + +
+

reloadDataForRowIndexes:columnIndexes:

+

Reloads the data for only the specified rows and columns. +

+

- (void)reloadDataForRowIndexes:(NSIndexSet *)rowIndexes columnIndexes:(NSIndexSet *)columnIndexes +

+
+

rowIndexes The indexes of the rows to update. +

+

columnIndexes The indexes of the columns to update. +

+
+
+ +

For cells that are visible, the appropriate dataSource and delegate methods will be called and the cells will be redrawn. +

For tables that support variable row heights, the row height will not be re-queried from the delegate; it is your responsibility to invoke noteHeightOfRowsWithIndexesChanged: if a row height change is required. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.6+NSTableView.hAnimatedTableView
+
+ + +
+

removeTableColumn:

+

Removes a given column from the receiver. +

+

- (void)removeTableColumn:(NSTableColumn *)aTableColumn +

+
+

aTableColumn The column to remove from the receiver. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– addTableColumn:
– sizeLastColumnToFit
+
+ + +
+

rowAtPoint:

+

Returns the index of the row a given point lies in. +

+

- (NSInteger)rowAtPoint:(NSPoint)aPoint +

+
+

aPoint A point in the coordinate system of the receiver. +

+

Returns The index of the row aPoint lies in, or –1 if aPoint lies outside the receiver’s bounds. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– columnAtPoint:
+
+ + +
+

rowHeight

+

Returns the height of each row in the receiver. +

+

- (CGFloat)rowHeight +

+
+

Returns The height of each row in the receiver. +

+
+
+ +

The default row height is 16.0. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setRowHeight:AnimatedTableView
Mountains
MP3 Player
PhotoSearch
+
+ + +
+

rowsInRect:

+

Returns a range of indices for the rows that lie wholly or partially within the vertical boundaries of a given rectangle. +

+

- (NSRange)rowsInRect:(NSRect)aRect +

+
+

aRect A rectangle in the coordinate system of the receiver. +

+

Returns A range of indices for the receiver’s rows that lie wholly or partially within the horizontal boundaries of aRect. If the width or height of aRect is 0, returns an NSRange whose length is 0. +

+
+
+ +

The location of the range is the first such row’s index, and the length is the number of rows that lie in aRect. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– columnsInRect:
+
+ + +
+

scrollColumnToVisible:

+

Scrolls the receiver and header view horizontally in an enclosing NSClipView so the column specified by columnIndex is visible. +

+

- (void)scrollColumnToVisible:(NSInteger)columnIndex +

+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– scrollRowToVisible:
+
+ + +
+

scrollRowToVisible:

+

Scrolls the receiver vertically in an enclosing NSClipView so the row specified by rowIndex is visible. +

+

- (void)scrollRowToVisible:(NSInteger)rowIndex +

+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– scrollColumnToVisible:DemoMonkey
MixMash
+
+ + +
+

selectAll:

+

Selects all rows or all columns, according to whether rows or columns were most recently selected. +

+

- (void)selectAll:(id)sender +

+
+

sender Typically the object that sent the message. +

+
+
+ +

If the table allows multiple selection, this action method selects all rows or all columns, according to whether rows or columns were most recently selected. If nothing has been recently selected, this method selects all rows. If this table doesn’t allow multiple selection, this method does nothing. +

If the selection does change, this method posts NSTableViewSelectionDidChangeNotification to the default notification center. +

As a target-action method, selectAll: checks with the delegate before changing the selection. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsMultipleSelection
– deselectAll:
– selectColumn:byExtendingSelection:
+
+ + +
+

selectColumnIndexes:byExtendingSelection:

+

Sets the column selection using indexes. +

+

- (void)selectColumnIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend +

+
+ +

If the extend flag is NO the selected columns are specified by indexes. If extend is YES, the columns indicated by indexes are added to the collection of already selected columns, providing multiple selection. +

If a subclass implements only the deprecated selectColumn:byExtendingSelection: method, then this method will be invoked in a loop. If a subclass implements this method, then selectColumn:byExtendingSelection: is not used. This allows subclasses that already implement selectColumn:byExtendingSelection: to still receive all selection messages. To avoid cycles, implementations of this method and selectColumn:byExtendingSelection: should not invoke each other. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– selectRowIndexes:byExtendingSelection:
+
+ + +
+

selectRowIndexes:byExtendingSelection:

+

Sets the row selection using indexes. +

+

- (void)selectRowIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend +

+
+ +

If the extend flag is NO the selected rows are specified by indexes. If extend is YES, the rows indicated by indexes are added to the collection of already selected rows, providing multiple selection. +

If a subclass implements only the deprecated selectRow:byExtendingSelection: method, then that method will be invoked in a loop. This allows subclasses that already implement selectRow:byExtendingSelection: to still receive all selection messages. If a subclass implements selectRowIndexes:byExtendingSelection:, then selectRow:byExtendingSelection: is not used. Note that to avoid cycles, implementations of this method and selectRow:byExtendingSelection: should not invoke each other. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.3+NSTableView.h– selectColumnIndexes:byExtendingSelection:DemoMonkey
DragNDropOutlineView
IdentitySample
+
+ + +
+

selectedColumn

+

Returns the index of the last column selected or added to the selection. +

+

- (NSInteger)selectedColumn +

+
+

Returns The index of the last column selected or added to the selection, or –1 if no column is selected. +

+
+ + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– deselectColumn:
– numberOfSelectedColumns
– selectColumn:byExtendingSelection:
– selectedColumnEnumerator
+
+ + +
+

selectedColumnIndexes

+

Returns an index set containing the indexes of the selected columns. +

+

- (NSIndexSet *)selectedColumnIndexes +

+
+

Returns An index set containing the indexes of the selected columns. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– selectColumnIndexes:byExtendingSelection:
– selectedRowIndexes
+
+ + +
+

selectedRow

+

Returns the index of the last row selected or added to the selection. +

+

- (NSInteger)selectedRow +

+
+

Returns The index of the last row selected or added to the selection, or –1 if no row is selected. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– deselectRow:EnhancedAudioBurn
– numberOfSelectedRowsFunHouse
– selectRow:byExtendingSelection:IdentitySample
– selectedRowEnumeratorQTAudioContextInsert
With and Without Bindings
+
+ + +
+

selectedRowIndexes

+

Returns an index set containing the indexes of the selected rows. +

+

- (NSIndexSet *)selectedRowIndexes +

+
+

Returns An index set containing the indexes of the selected rows. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.3+NSTableView.h– selectRowIndexes:byExtendingSelection:AnimatedTableView
– selectedColumnIndexesDragNDropOutlineView
IdentitySample
STUCAuthoringDeviceCocoaSample
With and Without Bindings
+
+ + +
+

selectionHighlightStyle

+

Returns the selection highlight style used by the receiver to indicate row and column selection. +

+

- (NSTableViewSelectionHighlightStyle)selectionHighlightStyle +

+
+

Returns The selection highlight style used by the receiver to use to indicate row and column selection. See “Selection Styles” for the possible values. +

+
+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.5+NSTableView.h
+
+ + +
+

setAllowsColumnReordering:

+

Controls whether the user can drag column headers to reorder columns. +

+

- (void)setAllowsColumnReordering:(BOOL)flag +

+
+

flag YES to allow the user to reorder columns, otherwise NO. +

+
+
+ +

The default is YES. You can rearrange columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnReordering
– moveColumn:toColumn:
+
+ + +
+

setAllowsColumnResizing:

+

Controls whether the user can resize columns by dragging between headers. +

+

- (void)setAllowsColumnResizing:(BOOL)flag +

+
+

flag YES to allow the user to resize columns, otherwise NO. +

+
+
+ +

The default is YES. You can resize columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnResizing
+
+ + +
+

setAllowsColumnSelection:

+

Controls whether the user can select an entire column by clicking its header. +

+

- (void)setAllowsColumnSelection:(BOOL)flag +

+
+

flag YES to allow the user to select columns, otherwise NO. +

+
+
+ +

The default is NO. You can select columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnSelection
– selectColumn:byExtendingSelection:
– setAllowsColumnReordering:
+
+ + +
+

setAllowsEmptySelection:

+

Controls whether the receiver allows zero rows or columns to be selected. +

+

- (void)setAllowsEmptySelection:(BOOL)flag +

+
+

flag YES if an empty selection is allowed, otherwise NO. +

+
+
+ +

The default is YES. +

Unlike with the other settings that affect selection behavior, you cannot set an empty selection programmatically if empty selection is disallowed. +

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsEmptySelection
– deselectAll:
– deselectColumn:
– deselectRow:
+
+ + +
+

setAllowsMultipleSelection:

+

Controls whether the user can select more than one row or column at a time. +

+

- (void)setAllowsMultipleSelection:(BOOL)flag +

+
+

flag YES to allow the user to select multiple rows or columns, otherwise NO. +

+
+
+ +

The default is NO. You can select multiple columns or rows programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsMultipleSelection
– selectColumn:byExtendingSelection:
– selectRow:byExtendingSelection:
+
+ + +
+

setAllowsTypeSelect:

+

Sets whether the receiver allows the user to type characters to select rows. +

+

- (void)setAllowsTypeSelect:(BOOL)value +

+
+

value YES if the receiver allows type selection, otherwise NO. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.5+NSTableView.h– allowsTypeSelect
+
+ + +
+

setAutosaveName:

+

Sets the name under which table information is automatically saved to name. +

+

- (void)setAutosaveName:(NSString *)name +

+
+ +

If name is different from the current name, this method also reads in the saved information and sets the order and width of this table view’s columns to match. +

The table information is saved separately for each user and for each application that user uses. Note that even though a table view has an autosave name, it may not be saving table information automatically. To set whether table information is being saved automatically, use setAutosaveTableColumns:. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveName
– setAutosaveTableColumns:
+
+ + +
+

setAutosaveTableColumns:

+

Sets whether the order and width of this table view’s columns are automatically saved. +

+

- (void)setAutosaveTableColumns:(BOOL)flag +

+
+ +

If flag is different from the current value, this method also reads in the saved information and sets the table options to match. +

The table information is saved separately for each user and for each application that user uses. Note that if autosaveName returns nil, this setting is ignored and table information isn’t saved. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveTableColumns
– setAutosaveName:
+
+ + +
+

setBackgroundColor:

+

Sets the receiver’s background color to a given color. +

+

- (void)setBackgroundColor:(NSColor *)aColor +

+
+

aColor The background color for the receiver. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– backgroundColor
+
+ + +
+

setColumnAutoresizingStyle:

+

Sets the column autoresizing style of the receiver to a given style. +

+

- (void)setColumnAutoresizingStyle:(NSTableViewColumnAutoresizingStyle)style +

+
+

style The column autoresizing style for the receiver. For possible values, see “Autoresizing Styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.4+NSTableView.h– columnAutoresizingStyle
+
+ + +
+

setCornerView:

+

Sets the receiver’s corner view to a given view. +

+

- (void)setCornerView:(NSView *)aView +

+
+

aView The corner view for the receiver. +

+
+
+ +

The default corner view merely draws a bezeled rectangle using a blank NSTableHeaderCell object, but you can replace it with a custom view that displays an image or with a control that can handle mouse events, such as a select all button. Your custom corner view should be as wide as a vertical NSScroller object and as tall as the receiver’s header view. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– cornerView
– setHeaderView:
+
+ + +
+

setDataSource:

+

Sets the receiver’s data source to a given object. +

+

- (void)setDataSource:(id < NSTableViewDataSource >)anObject +

+
+

anObject The data source for the receiver. The object must implement the appropriate methods of the NSTableDataSource informal protocol. +

+
+
+ +

In a managed memory environment, the receiver maintains a weak reference to the data source (that is, it does not retain the data source, see Communicating With Objects). After setting the data source, this method invokes tile. +

This method raises an NSInternalInconsistencyException if anObject doesn’t respond to either numberOfRowsInTableView: or tableView:objectValueForTableColumn:row:. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– dataSourceTimelineToTC
+
+ + +
+

setDelegate:

+

Sets the receiver’s delegate to a given object. +

+

- (void)setDelegate:(id < NSTableViewDelegate >)anObject +

+
+

anObject The delegate for the receiver. +

+
+
+ +

In a managed memory environment, the receiver maintains a weak reference to the delegate (that is, it does not retain the delegate, see Communicating With Objects). +

+ +
+ +
+

Special Considerations

+

When you call the tableview’s setDelegate: method, the delegate is automatically registered for the following notifications with the following delegate methods: +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– delegate
+
+ + +
+

setDoubleAction:

+

Sets the message sent to the target when the user double-clicks an uneditable cell or a column header to a given selector. +

+

- (void)setDoubleAction:(SEL)aSelector +

+
+

aSelector The message the receiver sends to its target when the user double-clicks an uneditable cell or a column header. +

+
+
+ +

If the double-clicked cell is editable, this message isn’t sent and the cell is edited instead. You can use this method to implement features such as sorting records according to the column that was double-clicked. See also clickedRow which you can use to determine if a row was clicked rather than the column heading. +

For the method to have any effect, the receiver’s action and target must be set to the class in which the selector is declared. See Action Messages for additional information on action messages. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– doubleActionScriptingBridgeFinder
+
+ + +
+

setDraggingDestinationFeedbackStyle:

+

Sets the feedback style displayed when the user drags over the table view. +

+

- (void)setDraggingDestinationFeedbackStyle:(NSTableViewDraggingDestinationFeedbackStyle)style +

+
+

style The dragging feedback style. See “NSTableViewDraggingDestinationFeedbackStyle” for the possible values. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– draggingDestinationFeedbackStyle
+
+ + +
+

setDraggingSourceOperationMask:forLocal:

+

Sets the default operation mask returned by draggingSourceOperationMaskForLocal: to mask. +

+

- (void)setDraggingSourceOperationMask:(NSDragOperation)mask forLocal:(BOOL)isLocal +

+
+ +

If isLocal is YES then mask applies when the destination object is in the same application. If isLocal is NO then mask applies when the destination object in an application outside the receiver's application. NSTableView will archive the operation mask you set for each isLocal setting. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

setDropRow:dropOperation:

+

Used if you wish to “retarget” the proposed drop. +

+

- (void)setDropRow:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation +

+
+ +

To specify a drop on the second row, one would specify row as 1, and operation as NSTableViewDropOn. To specify a drop below the last row, one would specify row as [self numberOfRows] and operation as NSTableViewDropAbove. Passing a value of –1 for row, and NSTableViewDropOn as the operation causes the entire table view to be highlighted rather than a specific row. This is useful if the data displayed by the receiver does not allow the user to drop items at a specific row location. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hDemoMonkey
EnhancedAudioBurn
iSpend
MP3 Player
With and Without Bindings
+
+ + +
+

setFocusedColumn:

+

Sets the currently focused column to the specified index. +

+

- (void)setFocusedColumn:(NSInteger)focusedColumn +

+
+

focusedColumn The index of the column to focus, or -1 if there should be no focused column. +

+
+
+ +

This method will redisplay the old previously focusedColumn and the newly focusedColumn, if required. +

The focused column has a focus ring drawn around the selectedRow that intersects with the focusedColumn. +

You should not override this method. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– focusedColumn
– shouldFocusCell:atColumn:row:
+
+ + +
+

setGridColor:

+

Sets the color used to draw grid lines to a given color. +

+

- (void)setGridColor:(NSColor *)aColor +

+
+

aColor The color to use to draw grid lines. +

+
+
+ +

The default color is gray. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawGridInClipRect:
– gridColor
– setDrawsGrid:
+
+ + +
+

setGridStyleMask:

+

Sets the grid style mask to specify if no grid lines, vertical grid lines, or horizontal grid lines should be displayed. +

+

- (void)setGridStyleMask:(NSUInteger)gridType +

+
+

gridType The grid style mask. Possible values for gridType are described in “Grid styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– gridStyleMask
+
+ + +
+

setHeaderView:

+

Sets the receiver’s header view to a given header view. +

+

- (void)setHeaderView:(NSTableHeaderView *)aHeaderView +

+
+

aHeaderView The header view for the receiver. +

+
+
+ +

If aHeaderView is nil, the current header view is removed. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– headerView
– setCornerView:
+
+ + +
+

setHighlightedTableColumn:

+

Sets aTableColumn to be the currently highlighted column header. +

+

- (void)setHighlightedTableColumn:(NSTableColumn *)aTableColumn +

+ + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– highlightedTableColumnNSOperationSample
+
+ + +
+

setIndicatorImage:inTableColumn:

+

Sets the indicator image of aTableColumn to anImage. +

+

- (void)setIndicatorImage:(NSImage *)anImage inTableColumn:(NSTableColumn *)aTableColumn +

+
+ +

anImage is retained and released by the table view as appropriate. +

The default sorting order indicators are available as named NSImage objects. These images are accessed using [NSImage imageNamed:] passing either @"NSAscendingSortIndicator" (the "^" icon), and @"NSDescendingSortIndicator" (the "v" icon). +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– indicatorImageInTableColumn:NSOperationSample
+
+ + +
+

setIntercellSpacing:

+

Sets the width and height between cells to those in a given NSSize struct. +

+

- (void)setIntercellSpacing:(NSSize)aSize +

+
+

aSize An NSSize struct that defines the width and height between cells in the receiver. +

+
+
+ +

The receiver redisplays after the new value is set. +

The default intercell spacing is (3.0, 2.0). +

Table views normally have a 1 pixel separation between consecutively selected rows or columns. An intercell spacing of (1.0, 1.0) or greater is required if you want this separation. An intercell spacing of (0.0, 0.0) forces there to be no separation between consecutive selections. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– intercellSpacing
+
+ + +
+

setRowHeight:

+

Sets the height for rows to a given value. +

+

- (void)setRowHeight:(CGFloat)rowHeight +

+
+

rowHeight The height for rows. +

+
+
+ +

After the height is set, this method invokes tile. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– rowHeightMountains
+
+ + +
+

setSelectionHighlightStyle:

+

Sets the selection highlight style used by the receiver to indicate row and column selection. +

+

- (void)setSelectionHighlightStyle:(NSTableViewSelectionHighlightStyle)selectionHighlightStyle +

+
+

selectionHighlightStyle The selection highlight style to use to indicate row and column selection. See “Selection Styles” for the possible values. +

+
+
+ +

Setting the selection highlight style to NSTableViewSelectionHighlightStyleSourceList causes the receiver to draw its background using the source list style. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.5+NSTableView.h
+
+ + +
+

setSortDescriptors:

+

Sets the receiver’s sort descriptors to the NSSortDescriptor objects in array. +

+

- (void)setSortDescriptors:(NSArray *)array +

+
+ +

A table column is considered sortable if it has a sort descriptor that specifies the sorting direction, a key to sort by, and a selector defining how to sort. The array of sort descriptors is archived. Sort descriptors persist along with other column information if an autosave name is set. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– sortDescriptors
+
+ + +
+

setUsesAlternatingRowBackgroundColors:

+

Sets whether the receiver uses the standard alternating row colors for its background. +

+

- (void)setUsesAlternatingRowBackgroundColors:(BOOL)useAlternatingRowColors +

+
+

useAlternatingRowColors YES to specify standard alternating row colors for the background, NO to specify a solid color. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– usesAlternatingRowBackgroundColors
+
+ + +
+

setVerticalMotionCanBeginDrag:

+

Sets whether vertical motion is treated as a drag or selection change to flag. +

+

- (void)setVerticalMotionCanBeginDrag:(BOOL)flag +

+
+ +

If flag is NO then vertical motion will not start a drag. The default is YES. +

Note that horizontal motion is always a valid motion to begin a drag. Most often, you would want to disable vertical dragging when it’s expected that horizontal dragging is the natural motion. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– verticalMotionCanBeginDragQTKitMovieShuffler
+
+ + +
+

shouldFocusCell:atColumn:row:

+

Returns whether the fully cell at the specified row and column can be made the focused cell or not. +

+

- (BOOL)shouldFocusCell:(NSCell *)cell atColumn:(NSInteger)column row:(NSInteger)row +

+
+

cell The prepared cell to be focused upon. +

+

column The column of the cell. +

+

row The row of the cell. +

+

Returns YES if the cell can be made the focused cell, otherwise NO. +

+
+
+ +

By default, only cells that are enabled can be focused. In addition, if the cell is an NSTextFieldCell, it will can only be focused if it is selectable or editable, and the table view delegate responds YES to -tableView:shouldEditTableColumn:row:. Subclasses can override this to further control what cells can and cannot be made focused. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– focusedColumn
– setFocusedColumn:
+
+ + +
+

sizeLastColumnToFit

+

Resizes the last column if there’s room so the receiver fits exactly within its enclosing clip view. +

+

- (void)sizeLastColumnToFit +

+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setAutoresizesAllColumnsToFit:
+
+ + +
+

sizeToFit

+

Changes the width of columns in the receiver so all columns are visible. +

+

- (void)sizeToFit +

+
+ +

All columns are resized to the same size, up to a column's maximum size. This method then invokes tile. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.3+NSTableView.h
+
+ + +
+

sortDescriptors

+

Returns the receiver’s sort descriptors. +

+

- (NSArray *)sortDescriptors +

+ + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.3+NSTableView.h– setSortDescriptors:DictionaryController
+
+ + +
+

tableColumnWithIdentifier:

+

Returns the NSTableColumn object for the first column whose identifier is equal to a given object. +

+

- (NSTableColumn *)tableColumnWithIdentifier:(id)anObject +

+
+

anObject A column identifier. +

+

Returns The NSTableColumn object for the first column whose identifier is equal to anObject, as compared using isEqual:, or nil if no columns are found with the specified identifier. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– columnWithIdentifier:DragNDropOutlineView
QTKitMovieShuffler
+
+ + +
+

tableColumns

+

Returns an array containing the the NSTableColumn objects in the receiver. +

+

- (NSArray *)tableColumns +

+
+

Returns An array containing the the NSTableColumn objects in the receiver. +

+
+
+ +

The array returned by tableColumns contains all receiver’s columns, including those that are hidden. +

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hAnimatedTableView
DragNDropOutlineView
NSOperationSample
People
+
+ + +
+

textDidBeginEditing:

+

Posts an NSControlTextDidBeginEditingNotification to the default notification center. +

+

- (void)textDidBeginEditing:(NSNotification *)aNotification +

+
+

aNotification The notification posted by the field editor; see the NSText class specifications for more information on this text delegate method. +

+
+
+ +

For more details, see the NSControl class specification. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textShouldBeginEditing:
+
+ + +
+

textDidChange:

+

Sends textDidChange: to the edited cell and posts an NSControlTextDidChangeNotification to the default notification center. +

+

- (void)textDidChange:(NSNotification *)aNotification +

+
+

aNotification The notification posted by the field editor. +

+
+
+ +

See the NSText class specification for more information on this text delegate method. For additional details, see the NSControl class specification. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

textDidEndEditing:

+

Updates the data source based on the newly edited value and selects another cell for editing if possible according to the character that ended editing (Return, Tab, Backtab). +

+

- (void)textDidEndEditing:(NSNotification *)aNotification +

+
+ +

aNotification is the NSNotification posted by the field editor; see the NSText class specification for more information on this text delegate method. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textShouldEndEditing:
+
+ + +
+

textShouldBeginEditing:

+

Queries the delegate using control:textShouldBeginEditing:, returning the delegate’s response, or simply returning YES to allow editing of textObject if the delegate doesn’t respond to that method. +

+

- (BOOL)textShouldBeginEditing:(NSText *)textObject +

+
+ +

See the NSText class specification for more information on this text delegate method. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textDidBeginEditing:
+
+ + +
+

textShouldEndEditing:

+

Validates the textObject cell being edited and queries the delegate using control:textShouldEndEditing:, returning the delegate’s response if it responds to that method. +

+

- (BOOL)textShouldEndEditing:(NSText *)textObject +

+
+ +

If it doesn’t, it returns YES if the cell’s new value is valid and NO if it isn’t. See the NSText class specification for more information on this text delegate method. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textDidEndEditing:
+
+ + +
+

tile

+

Properly sizes the receiver and its header view and marks it as needing display. +

+

- (void)tile +

+
+ +

Also resets cursor rectangles for the header view and line scroll amounts for the NSScrollView object. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

usesAlternatingRowBackgroundColors

+

Returns a Boolean value that indicates whether the receiver uses the standard alternating row colors for its background. +

+

- (BOOL)usesAlternatingRowBackgroundColors +

+
+

Returns YES if the receiver uses standard alternating row colors for the background, NO if it uses a solid color. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– setUsesAlternatingRowBackgroundColors:
+
+ + +
+

verticalMotionCanBeginDrag

+

Returns whether vertical motion is treated as a drag or selection change. +

+

- (BOOL)verticalMotionCanBeginDrag +

+
+ +

NO means that vertical motion will not start a drag. Note that horizontal motion is always a valid motion to begin a drag. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setVerticalMotionCanBeginDrag:
+
+ +
+ +
+ +
+

NSTableViewColumnDidMoveNotification

+

Posted whenever a column is moved by user action in an NSTableView object. The notification object is the table view in which a column moved. The userInfo dictionary contains the following information: +

+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– moveColumn:toColumn:
+
+ + +
+

NSTableViewColumnDidResizeNotification

+

Posted whenever a column is resized in an NSTableView object. The notification object is the table view in which a column was resized. The userInfo dictionary contains the following information: +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

NSTableViewSelectionDidChangeNotification

+

Posted after an NSTableView object's selection changes. The notification object is the table view whose selection changed. This notification does not contain a userInfo dictionary. +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

NSTableViewSelectionIsChangingNotification

+

Posted as an NSTableView object's selection changes (while the mouse button is still down). The notification object is the table view whose selection is changing. This notification does not contain a userInfo dictionary. +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ +
+ + +2010-03-24 14:07:24.949 Ingredients[73579:a0f] outputString = + + + + +NSTableView + + + + +
+

NSTableView

An NSTableView object displays data for a set of related records, with rows representing individual records and columns representing the attributes of those records. +

A table view is usually displayed in a scroll view, like this: +

+ +
+ +
+

Setting the Data Source

+ +

Loading Data

+ +

Target-action Behavior

+ +

Configuring Behavior

+ +

Setting Display Attributes

+ +

Column Management

+ +

Selecting Columns and Rows

+ +

Managing Type Select

+ +

Getting and Setting Column Focus

+ +

Table Dimensions

+ +

Displaying Cell

+ +

Editing Cells

+ +

Setting Auxiliary Views

+ +

Layout Support

+ +

Drawing

+ +

Scrolling

+ +

Persistence

+ +

Setting the Delegate

+ +

Highlightable Column Headers

+ +

Dragging

+ +

Sorting

+ +

Text Delegate Methods

+ +

Deprecated Methods

+ +
+ +
+
+
+ +
+

addTableColumn:

+

Adds a given column as the last column of the receiver. +

+

- (void)addTableColumn:(NSTableColumn *)aColumn +

+
+

aColumn The column to add to the receiver. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– removeTableColumn:
– sizeLastColumnToFit
+
+ + +
+

allowsColumnReordering

+

Returns a Boolean value that indicates whether the receiver allows the user to rearrange columns by dragging their headers. +

+

- (BOOL)allowsColumnReordering +

+
+

Returns YES to allow the user to rearrange columns by dragging their headers, otherwise NO. +

+
+
+ +

The default is YES. You can rearrange columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– moveColumn:toColumn:
– setAllowsColumnReordering:
+
+ + +
+

allowsColumnResizing

+

Returns a Boolean value that indicates whether the receiver allows the user to resize columns by dragging between their headers. +

+

- (BOOL)allowsColumnResizing +

+
+

Returns YES if the receiver allows the user to resize columns by dragging between their headers, otherwise NO. +

+
+
+ +

The default is YES. You can resize columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setAllowsColumnResizing:
+
+ + +
+

allowsColumnSelection

+

Returns a Boolean value that indicates whether the receiver allows the user to select columns by clicking their headers. +

+

- (BOOL)allowsColumnSelection +

+
+

Returns YES if the receiver allows the user to select columns by clicking their headers, otherwise NO. +

+
+
+ +

The default is NO. You can select columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnReordering
– selectColumn:byExtendingSelection:
– setAllowsColumnSelection:
+
+ + +
+

allowsEmptySelection

+

Returns a Boolean value that indicates whether the receiver allows the user to select zero columns or rows. +

+

- (BOOL)allowsEmptySelection +

+
+

Returns YES if the receiver allows the user to select zero columns or rows, otherwise NO. +

+
+
+ +

The default is YES. +

You cannot set an empty selection programmatically if this setting is NO, unlike with the other settings that affect selection behavior. +

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– deselectAll:
– deselectColumn:
– deselectRow:
– setAllowsEmptySelection:
+
+ + +
+

allowsMultipleSelection

+

Returns a Boolean value that indicates whether the receiver allows the user to select more than one column or row at a time. +

+

- (BOOL)allowsMultipleSelection +

+
+

Returns YES if the receiver allows the user to select more than one column or row at a time, otherwise NO. +

+
+
+ +

The default is NO. You can select multiple columns or rows programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– selectColumn:byExtendingSelection:
– selectRow:byExtendingSelection:
– setAllowsMultipleSelection:
+
+ + +
+

allowsTypeSelect

+

Returns a Boolean value that indicates whether the receiver allows the user to type characters to select rows. +

+

- (BOOL)allowsTypeSelect +

+
+

Returns YES if the receiver allows type selection, otherwise NO. +

+
+
+ +

The default value is YES. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.5+NSTableView.h– setAllowsTypeSelect:
+
+ + +
+

autosaveName

+

Returns the name under which table information is automatically saved. +

+

- (NSString *)autosaveName +

+
+

Returns The name under which table information is automatically saved. If no name has been set, returns nil. +

+
+
+ +

The table information is saved separately for each user and for each application that user uses. +

Note that even when a table view has an autosave name, it may not be saving table information automatically. To check whether table information is being saved automatically, use autosaveTableColumns. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveTableColumns
– setAutosaveName:
+
+ + +
+

autosaveTableColumns

+

Returns a Boolean value that indicates whether the order and width of the receiver’s columns are automatically saved. +

+

- (BOOL)autosaveTableColumns +

+
+ +

The table information is saved separately for each user and for each application that user uses. Note that if autosaveName returns nil, this setting is ignored and table information isn’t saved. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveName
– setAutosaveName:
– setAutosaveTableColumns:
+
+ + +
+

backgroundColor

+

Returns the color used to draw the background of the receiver. +

+

- (NSColor *)backgroundColor +

+
+

Returns The color used to draw the background of the receiver. +

+
+
+ +

The default background color is light gray. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setBackgroundColor:
+
+ + +
+

canDragRowsWithIndexes:atPoint:

+

Returns whether the receiver allows dragging the rows at rowIndexes with a drag initiated at mousedDownPoint. +

+

- (BOOL)canDragRowsWithIndexes:(NSIndexSet *)rowIndexes atPoint:(NSPoint)mouseDownPoint +

+
+ +

Return NO to disallow the drag. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

clickedColumn

+

Returns the index of the column the user clicked to trigger an action message. +

+

- (NSInteger)clickedColumn +

+
+

Returns The index of the column the user clicked to trigger an action message. Returns –1 if the user clicked in an area of the table view not occupied by columns. +

+
+
+ +

The return value of this method is meaningful only in the target’s implementation of the action or double-action method. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– clickedRowAnimatedTableView
– setDoubleAction:DragNDropOutlineView
PhotoSearch
+
+ + +
+

clickedRow

+

Returns the index of the row the user clicked to trigger an action message. +

+

- (NSInteger)clickedRow +

+
+

Returns The index of the row the user clicked to trigger an action message. Returns –1 if the user clicked in an area of the table view not occupied by table rows. +

+
+
+ +

The return value of this method is meaningful only in the target’s implementation of the action or double-action method. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– clickedColumnAnimatedTableView
– setDoubleAction:DragNDropOutlineView
PhotoSearch
WhackedTV
+
+ + +
+

columnAtPoint:

+

Returns the index of the column a given point lies in. +

+

- (NSInteger)columnAtPoint:(NSPoint)aPoint +

+
+

aPoint A point in the coordinate system of the receiver. +

+

Returns The index of the column aPoint lies in, or –1 if aPoint lies outside the receiver’s bounds. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– rowAtPoint:
+
+ + +
+

columnAutoresizingStyle

+

Returns the receiver’s column autoresizing style. +

+

- (NSTableViewColumnAutoresizingStyle)columnAutoresizingStyle +

+
+

Returns The receiver’s column autoresizing style. For possible values, see “Autoresizing Styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.4+NSTableView.h– setColumnAutoresizingStyle:
+
+ + +
+

columnIndexesInRect:

+

Returns the indexes of the receiver’s columns that intersect the specified rectangle. +

+

- (NSIndexSet *)columnIndexesInRect:(NSRect)rect +

+
+

rect The rectangle in the receiver’s coordinate system to test for column enclosure. +

+

Returns New NSIndexSet object containing the indexes of the receiver’s columns that intersect with rect. +

+
+
+ +

Columns that return YES for the NSTableColumn method isHidden are excluded from the results. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.5+NSTableView.h
+
+ + +
+

columnWithIdentifier:

+

Returns the index of the first column in the receiver whose identifier is equal to a given identifier. +

+

- (NSInteger)columnWithIdentifier:(id)anObject +

+
+

anObject A column identifier. +

+

Returns The index of the first column in the receiver whose identifier is equal to anObject (when compared using isEqual:) or –1 if no columns are found with the specified identifier. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– tableColumnWithIdentifier:
+
+ + +
+

cornerView

+

Returns the view used to draw the area to the right of the column headers and above the vertical scroller of the enclosing scroll view. +

+

- (NSView *)cornerView +

+
+

Returns The view used to draw the area to the right of the column headers and above the vertical scroller of the enclosing NSScrollView object. +

+
+
+ +

This is by default a simple view that merely fills in its frame, but you can replace it with a custom view using setCornerView:. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– headerView
+
+ + +
+

dataSource

+

Returns the object that provides the data displayed by the receiver. +

+

- (id < NSTableViewDataSource >)dataSource +

+
+

Returns The object that provides the data displayed by the receiver. +

+
+
+ +

See Using a Table Data Source and the NSTableDataSource informal protocol specification for more information. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setDataSource:CocoaAUHost
+
+ + +
+

delegate

+

Returns the receiver’s delegate. +

+

- (id < NSTableViewDelegate >)delegate +

+
+

Returns The receiver’s delegate. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setDelegate:AnimatedTableView
People
+
+ + +
+

deselectAll:

+

Deselects all selected rows or columns if empty selection is allowed; otherwise does nothing. +

+

- (void)deselectAll:(id)sender +

+
+

sender Typically the object that sent the message. +

+
+
+ +

Posts NSTableViewSelectionDidChangeNotification to the default notification center if the selection does in fact change. +

As a target-action method, deselectAll: checks with the delegate before changing the selection, using selectionShouldChangeInTableView:. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– allowsEmptySelectionDragNDropOutlineView
– selectAll:EnhancedAudioBurn
– selectColumn:byExtendingSelection:EnhancedDataBurn
QTKitMovieShuffler
+
+ + +
+

deselectColumn:

+

Deselects the column at a given index if it’s selected. +

+

- (void)deselectColumn:(NSInteger)columnIndex +

+
+

columnIndex The index of the column to deselect. +

+
+
+ +

Deselects the column at columnIndex if it’s selected, regardless of whether empty selection is allowed. +

If the selection does in fact change, posts NSTableViewSelectionDidChangeNotification to the default notification center. +

If the indicated column was the last column selected by the user, the column nearest it effectively becomes the last selected column. In case of a tie, priority is given to the column on the left. +

This method doesn’t check with the delegate before changing the selection. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsEmptySelection
– selectRow:byExtendingSelection:
– selectedColumn
+
+ + +
+

deselectRow:

+

Deselects the row at a given index if it’s selected. +

+

- (void)deselectRow:(NSInteger)rowIndex +

+
+

rowIndex The index of the row to deselect. +

+
+
+ +

Deselects the row at rowIndex if it’s selected, regardless of whether empty selection is allowed. +

If the selection does in fact change, posts NSTableViewSelectionDidChangeNotification to the default notification center. +

If the indicated row was the last row selected by the user, the row nearest it effectively becomes the last selected row. In case of a tie, priority is given to the row above. +

This method doesn’t check with the delegate before changing the selection. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– allowsEmptySelectionXMLBrowser
– selectedRow
+
+ + +
+

doubleAction

+

Returns the message sent to the target when the user double-clicks a column header or an uneditable cell. +

+

- (SEL)doubleAction +

+
+

Returns The message the receiver sends to its target when the user double-clicks a column header or an uneditable cell. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setDoubleAction:
+
+ + +
+

dragImageForRowsWithIndexes:tableColumns:event:offset:

+

Computes and returns an image to use for dragging. +

+

- (NSImage *)dragImageForRowsWithIndexes:(NSIndexSet *)dragRows tableColumns:(NSArray *)tableColumns event:(NSEvent *)dragEvent offset:(NSPointPointer)dragImageOffset +

+
+ +

Override this to return a custom image. dragRows represents the rows participating in the drag. tableColumns represents the table columns that should be in the output image. dragEvent is a reference to the mouse-down event that began the drag. dragImageOffset is an in/out parameter. +

This method is called with dragImageOffset set to NSZeroPoint, but it can be modified to reposition the returned image. A dragImageOffset of NSZeroPoint will cause the image to be centered under the cursor. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

draggingDestinationFeedbackStyle

+

Returns the feedback style displayed when the user drags over the table view. +

+

- (NSTableViewDraggingDestinationFeedbackStyle)draggingDestinationFeedbackStyle +

+
+

Returns The dragging feedback style. See “NSTableViewDraggingDestinationFeedbackStyle” for the possible values. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– setDraggingDestinationFeedbackStyle:
+
+ + +
+

drawBackgroundInClipRect:

+

Draws the background in the clip rect specified by clipRect. +

+

- (void)drawBackgroundInClipRect:(NSRect)clipRect +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.3+NSTableView.h
+
+ + +
+

drawGridInClipRect:

+

Draws the grid lines within aRect, using the grid color set with setGridColor:. +

+

- (void)drawGridInClipRect:(NSRect)aRect +

+
+ +

This method draws a grid regardless of whether the receiver is set to draw one automatically. +

Subclasses can override this method to draw grid lines other than the standard ones. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawRow:clipRect:
– drawsGrid
– gridColor
– highlightSelectionInClipRect:
– setIntercellSpacing:
+
+ + +
+

drawRow:clipRect:

+

Draws the cells for the row at rowIndex in the columns that intersect clipRect. +

+

- (void)drawRow:(NSInteger)rowIndex clipRect:(NSRect)clipRect +

+
+ +

Sends tableView:willDisplayCell:forTableColumn:row: to the delegate before drawing each cell. +

Subclasses can override this method to customize their appearance. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– columnsInRect:
– drawGridInClipRect:
– highlightSelectionInClipRect:
+
+ + +
+

editColumn:row:withEvent:select:

+

Edits the cell at columnIndex and rowIndex, selecting its entire contents if flag is YES. +

+

- (void)editColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex withEvent:(NSEvent *)theEvent select:(BOOL)flag +

+
+ +

This method is invoked automatically in response to user actions; you should rarely need to invoke it directly. theEvent is usually the mouse event that triggered editing; it can be nil when starting an edit programmatically. +

This method scrolls the receiver so that the cell is visible, sets up the field editor, and sends selectWithFrame:inView:editor:delegate:start:length: and editWithFrame:inView:editor:delegate:event: to the field editor’s NSCell object with the NSTableView as the text delegate. +

The row at rowIndex must be selected prior to calling editColumn:row:withEvent:select:, or an exception will be raised. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– editedColumnDragNDropOutlineView
– editedRowIdentitySample
SourceView
+
+ + +
+

editedColumn

+

Returns the index of the column being edited. +

+

- (NSInteger)editedColumn +

+
+

Returns If sent during editColumn:row:withEvent:select:, the index of the column being edited; otherwise –1. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hAnimatedTableView
People
+
+ + +
+

editedRow

+

Returns the index of the row being edited. +

+

- (NSInteger)editedRow +

+
+

Returns If sent during editColumn:row:withEvent:select:, the index of the row being edited; otherwise –1. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hAnimatedTableView
People
+
+ + +
+

focusedColumn

+

Returns the currently focused column. +

+

- (NSInteger)focusedColumn +

+
+

Returns The index of the column, or -1 if there is no focused column +

+
+
+ +

The focus interaction will always be on the selectedRow of the table. If the selectedRow is a full width cell, then focusedColumn will return 1 when focused.. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– setFocusedColumn:
– shouldFocusCell:atColumn:row:
+
+ + +
+

frameOfCellAtColumn:row:

+

Returns a rectangle locating the cell that lies at the intersection of columnIndex and rowIndex. +

+

- (NSRect)frameOfCellAtColumn:(NSInteger)columnIndex row:(NSInteger)rowIndex +

+
+

columnIndex The index of the column containing the cell whose rectangle you want. +

+

rowIndex The index of the row containing the cell whose rectangle you want. +

+

Returns A rectangle locating the cell that lies at the intersection of columnIndex and rowIndex. Returns NSZeroRect if columnIndex or rowIndex is greater than the number of columns or rows in the receiver. +

+
+
+ +

You can use this method to update a single cell more efficiently than sending the table view a reloadData message. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– rectOfColumn:AnimatedTableView
– rectOfRow:DragNDropOutlineView
PhotoSearch
+
+ + +
+

gridColor

+

Returns the color used to draw grid lines. +

+

- (NSColor *)gridColor +

+
+

Returns The color used to draw grid lines. +

+
+
+ +

The default color is gray. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawGridInClipRect:
– drawsGrid
– setGridColor:
+
+ + +
+

gridStyleMask

+

Returns the receiver’s grid style mask. +

+

- (NSUInteger)gridStyleMask +

+
+

Returns The receiver’s grid style mask. Possible return values are described in “Grid styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– setGridStyleMask:
+
+ + +
+

headerView

+

Returns the NSTableHeaderView object used to draw headers over columns. +

+

- (NSTableHeaderView *)headerView +

+
+

Returns The NSTableHeaderView object used to draw headers over columns, or nil if the receiver has no header view +

+
+
+ +

See The Parts of a Table and the NSTableHeaderView class specification for more information. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setHeaderView:
+
+ + +
+

highlightSelectionInClipRect:

+

Highlights the region of the receiver in clipRect. +

+

- (void)highlightSelectionInClipRect:(NSRect)clipRect +

+
+ +

This method is invoked before drawRow:clipRect:. +

Subclasses can override this method to change the manner in which they highlight selections. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawGridInClipRect:
+
+ + +
+

highlightedTableColumn

+

Returns the table column highlighted in the receiver. +

+

- (NSTableColumn *)highlightedTableColumn +

+
+

Returns The table column highlighted in the receiver. +

+
+
+ +

A highlightable column header can be used in conjunction with row selection to highlight a particular column of the table. An example of this is how the Mail application indicates the currently sorted column. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setHighlightedTableColumn:
+
+ + +
+

indicatorImageInTableColumn:

+

Returns the indicator image of a given table column. +

+

- (NSImage *)indicatorImageInTableColumn:(NSTableColumn *)aTableColumn +

+
+

aTableColumn A table column in the receiver. +

+
+
+ +

An indicator image is an arbitrary (small) image that is rendered on the right side of the column header. An example of its use is in Mail to indicate the sorting direction of the currently sorted column in a mailbox. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setIndicatorImage:inTableColumn:
+
+ + +
+

intercellSpacing

+

Returns the horizontal and vertical spacing between cells. +

+

- (NSSize)intercellSpacing +

+
+

Returns The horizontal and vertical spacing between cells. +

+
+
+ +

The default spacing is (3.0, 2.0). +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setDrawsGrid:MP3 Player
– setIntercellSpacing:
+
+ + +
+

isColumnSelected:

+

Returns a Boolean value that indicates whether the column at a given index is selected. +

+

- (BOOL)isColumnSelected:(NSInteger)columnIndex +

+
+

columnIndex The index of the column to test. +

+

Returns YES if the column at columnIndex is selected, otherwise NO. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– selectColumn:byExtendingSelection:
– selectedColumn
– selectedColumnEnumerator
+
+ + +
+

isRowSelected:

+

Returns a Boolean value that indicates whether the row at a given index is selected. +

+

- (BOOL)isRowSelected:(NSInteger)rowIndex +

+
+

rowIndex The index of the row to test. +

+

Returns YES if the row at rowIndex is selected, otherwise NO. +

+
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– selectRow:byExtendingSelection:DragNDropOutlineView
– selectedRow
– selectedRowEnumerator
+
+ + +
+

moveColumn:toColumn:

+

Moves the column and heading at a given index to a new given index. +

+

- (void)moveColumn:(NSInteger)columnIndex toColumn:(NSInteger)newIndex +

+
+

columnIndex The current index of the column to move. +

+

newIndex The new index for the moved column. +

+
+
+ +

This method posts NSTableViewColumnDidMoveNotification to the default notification center. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

noteHeightOfRowsWithIndexesChanged:

+

Informs the receiver that the rows specified in indexSet have changed height. +

+

- (void)noteHeightOfRowsWithIndexesChanged:(NSIndexSet *)indexSet +

+
+ +

If the delegate implements tableView:heightOfRow: this method immediately re-tiles the table view using the row heights the delegate provides. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

noteNumberOfRowsChanged

+

Informs the receiver that the number of records in its data source has changed. +

+

- (void)noteNumberOfRowsChanged +

+
+ +

This method allows the receiver to update the scrollers in its scroll view without actually reloading data into the receiver. It’s useful for a data source that continually receives data in the background over a period of time, in which case the table view can remain responsive to the user while the data is received. +

See the NSTableDataSource informal protocol specification for information on the messages an NSTableView object sends to its data source. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– reloadDataNewsReader
+
+ + +
+

numberOfColumns

+

Returns the number of columns in the receiver. +

+

- (NSInteger)numberOfColumns +

+
+

Returns The number of columns in the receiver. +

+
+
+ +

The value returned includes table columns that are currently hidden. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– numberOfRowsNSOperationSample
+
+ + +
+

numberOfRows

+

Returns the number of rows in the receiver. +

+

- (NSInteger)numberOfRows +

+
+

Returns The number of rows in the receiver. +

+
+
+ +

Typically you should not ask the table view how many rows it has; instead you should interrogate the table view's data source. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– numberOfColumnsEnhancedAudioBurn
iSpend
MP3 Player
PDFKitLinker2
QTAudioExtractionPanel
+
+ + +
+

numberOfSelectedColumns

+

Returns the number of selected columns. +

+

- (NSInteger)numberOfSelectedColumns +

+
+

Returns The number of selected columns. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– numberOfSelectedRows
– selectedColumnEnumerator
+
+ + +
+

numberOfSelectedRows

+

Returns the number of selected rows. +

+

- (NSInteger)numberOfSelectedRows +

+
+

Returns The number of selected rows. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– numberOfSelectedColumnsDragNDropOutlineView
– selectedRowEnumeratorEnhancedAudioBurn
+
+ + +
+

performClickOnCellAtColumn:row:

+

Performs a click action on the cell at the specified row and column. +

+

- (void)performClickOnCellAtColumn:(NSInteger)column row:(NSInteger)row +

+
+

column The column of the cell. +

+

row The row of the cell. +

+
+
+ +

Acquires the preparedCellAtColumn:row:, copies it, invokes performClick: or performClickWithFrame:inView: (if the cell is an NSPopUpButtonCell), and then updates the datasource, if required. This method does not do any checks to see if the cell is enabled. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.6+NSTableView.h
+
+ + +
+

preparedCellAtColumn:row:

+

Returns the fully prepared cell that the receiver will use for drawing or processing of the specified row and column. +

+

- (NSCell *)preparedCellAtColumn:(NSInteger)column row:(NSInteger)row +

+
+

column The column index for which to return the appropriate cell. +

+

row The row index for which to return the appropriate cell. +

+

Returns New NSCell subclass instance to use for the specified row and column. The value for the cell is correctly set, and the delegate method tableView:willDisplayCell:forTableColumn:row: will have been called. +

+
+
+ +

You can override this method to do any additional cell set up that is required, or invoke it to retrieve a cell that has its contents configured for the specified column and row. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.5+NSTableView.hDragNDropOutlineView
PhotoSearch
+
+ + +
+

rectOfColumn:

+

Returns the rectangle containing the column at a given index. +

+

- (NSRect)rectOfColumn:(NSInteger)columnIndex +

+
+

columnIndex The index of a column in the receiver. +

+

Returns The rectangle containing the column at columnIndex. Returns NSZeroRect if columnIndex lies outside the range of valid column indices for the receiver. +

+
+
+ +

You can use this method to update a single column more efficiently than sending the table view a reloadData message. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– frameOfCellAtColumn:row:
– rectOfRow:
+
+ + +
+

rectOfRow:

+

Returns the rectangle containing the row at a given index. +

+

- (NSRect)rectOfRow:(NSInteger)rowIndex +

+
+

Returns The rectangle containing the row at rowIndex. Returns NSZeroRect if rowIndex lies outside the range of valid row indices for the receiver. +

+
+
+ +

You can use this method to update a single row more efficiently than sending the table view a reloadData message. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– frameOfCellAtColumn:row:DragNDropOutlineView
– rectOfColumn:NewsReader
+
+ + +
+

reloadData

+

Marks the receiver as needing redisplay, so it will reload the data for visible cells and draw the new values. +

+

- (void)reloadData +

+
+ +

This method forces redraw of all the visible cells in the receiver. If you want to update the value in a single cell, column, or row, it is more efficient to use frameOfCellAtColumn:row:, rectOfColumn:, or rectOfRow: in conjunction with setNeedsDisplayInRect: (NSView). If you just want to update the scroller, use noteNumberOfRowsChanged; if the height of a set of rows changes, use noteHeightOfRowsWithIndexesChanged:. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– frameOfCellAtColumn:row:DragNDropOutlineView
– noteHeightOfRowsWithIndexesChanged:QTAudioContextInsert
– noteNumberOfRowsChangedQTAudioExtractionPanel
– rectOfColumn:WhackedTV
– rectOfRow:With and Without Bindings
+
+ + +
+

reloadDataForRowIndexes:columnIndexes:

+

Reloads the data for only the specified rows and columns. +

+

- (void)reloadDataForRowIndexes:(NSIndexSet *)rowIndexes columnIndexes:(NSIndexSet *)columnIndexes +

+
+

rowIndexes The indexes of the rows to update. +

+

columnIndexes The indexes of the columns to update. +

+
+
+ +

For cells that are visible, the appropriate dataSource and delegate methods will be called and the cells will be redrawn. +

For tables that support variable row heights, the row height will not be re-queried from the delegate; it is your responsibility to invoke noteHeightOfRowsWithIndexesChanged: if a row height change is required. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.6+NSTableView.hAnimatedTableView
+
+ + +
+

removeTableColumn:

+

Removes a given column from the receiver. +

+

- (void)removeTableColumn:(NSTableColumn *)aTableColumn +

+
+

aTableColumn The column to remove from the receiver. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– addTableColumn:
– sizeLastColumnToFit
+
+ + +
+

rowAtPoint:

+

Returns the index of the row a given point lies in. +

+

- (NSInteger)rowAtPoint:(NSPoint)aPoint +

+
+

aPoint A point in the coordinate system of the receiver. +

+

Returns The index of the row aPoint lies in, or –1 if aPoint lies outside the receiver’s bounds. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– columnAtPoint:
+
+ + +
+

rowHeight

+

Returns the height of each row in the receiver. +

+

- (CGFloat)rowHeight +

+
+

Returns The height of each row in the receiver. +

+
+
+ +

The default row height is 16.0. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– setRowHeight:AnimatedTableView
Mountains
MP3 Player
PhotoSearch
+
+ + +
+

rowsInRect:

+

Returns a range of indices for the rows that lie wholly or partially within the vertical boundaries of a given rectangle. +

+

- (NSRange)rowsInRect:(NSRect)aRect +

+
+

aRect A rectangle in the coordinate system of the receiver. +

+

Returns A range of indices for the receiver’s rows that lie wholly or partially within the horizontal boundaries of aRect. If the width or height of aRect is 0, returns an NSRange whose length is 0. +

+
+
+ +

The location of the range is the first such row’s index, and the length is the number of rows that lie in aRect. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– columnsInRect:
+
+ + +
+

scrollColumnToVisible:

+

Scrolls the receiver and header view horizontally in an enclosing NSClipView so the column specified by columnIndex is visible. +

+

- (void)scrollColumnToVisible:(NSInteger)columnIndex +

+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– scrollRowToVisible:
+
+ + +
+

scrollRowToVisible:

+

Scrolls the receiver vertically in an enclosing NSClipView so the row specified by rowIndex is visible. +

+

- (void)scrollRowToVisible:(NSInteger)rowIndex +

+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– scrollColumnToVisible:DemoMonkey
MixMash
+
+ + +
+

selectAll:

+

Selects all rows or all columns, according to whether rows or columns were most recently selected. +

+

- (void)selectAll:(id)sender +

+
+

sender Typically the object that sent the message. +

+
+
+ +

If the table allows multiple selection, this action method selects all rows or all columns, according to whether rows or columns were most recently selected. If nothing has been recently selected, this method selects all rows. If this table doesn’t allow multiple selection, this method does nothing. +

If the selection does change, this method posts NSTableViewSelectionDidChangeNotification to the default notification center. +

As a target-action method, selectAll: checks with the delegate before changing the selection. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsMultipleSelection
– deselectAll:
– selectColumn:byExtendingSelection:
+
+ + +
+

selectColumnIndexes:byExtendingSelection:

+

Sets the column selection using indexes. +

+

- (void)selectColumnIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend +

+
+ +

If the extend flag is NO the selected columns are specified by indexes. If extend is YES, the columns indicated by indexes are added to the collection of already selected columns, providing multiple selection. +

If a subclass implements only the deprecated selectColumn:byExtendingSelection: method, then this method will be invoked in a loop. If a subclass implements this method, then selectColumn:byExtendingSelection: is not used. This allows subclasses that already implement selectColumn:byExtendingSelection: to still receive all selection messages. To avoid cycles, implementations of this method and selectColumn:byExtendingSelection: should not invoke each other. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– selectRowIndexes:byExtendingSelection:
+
+ + +
+

selectRowIndexes:byExtendingSelection:

+

Sets the row selection using indexes. +

+

- (void)selectRowIndexes:(NSIndexSet *)indexes byExtendingSelection:(BOOL)extend +

+
+ +

If the extend flag is NO the selected rows are specified by indexes. If extend is YES, the rows indicated by indexes are added to the collection of already selected rows, providing multiple selection. +

If a subclass implements only the deprecated selectRow:byExtendingSelection: method, then that method will be invoked in a loop. This allows subclasses that already implement selectRow:byExtendingSelection: to still receive all selection messages. If a subclass implements selectRowIndexes:byExtendingSelection:, then selectRow:byExtendingSelection: is not used. Note that to avoid cycles, implementations of this method and selectRow:byExtendingSelection: should not invoke each other. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.3+NSTableView.h– selectColumnIndexes:byExtendingSelection:DemoMonkey
DragNDropOutlineView
IdentitySample
+
+ + +
+

selectedColumn

+

Returns the index of the last column selected or added to the selection. +

+

- (NSInteger)selectedColumn +

+
+

Returns The index of the last column selected or added to the selection, or –1 if no column is selected. +

+
+ + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– deselectColumn:
– numberOfSelectedColumns
– selectColumn:byExtendingSelection:
– selectedColumnEnumerator
+
+ + +
+

selectedColumnIndexes

+

Returns an index set containing the indexes of the selected columns. +

+

- (NSIndexSet *)selectedColumnIndexes +

+
+

Returns An index set containing the indexes of the selected columns. +

+
+ + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– selectColumnIndexes:byExtendingSelection:
– selectedRowIndexes
+
+ + +
+

selectedRow

+

Returns the index of the last row selected or added to the selection. +

+

- (NSInteger)selectedRow +

+
+

Returns The index of the last row selected or added to the selection, or –1 if no row is selected. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– deselectRow:EnhancedAudioBurn
– numberOfSelectedRowsFunHouse
– selectRow:byExtendingSelection:IdentitySample
– selectedRowEnumeratorQTAudioContextInsert
With and Without Bindings
+
+ + +
+

selectedRowIndexes

+

Returns an index set containing the indexes of the selected rows. +

+

- (NSIndexSet *)selectedRowIndexes +

+
+

Returns An index set containing the indexes of the selected rows. +

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.3+NSTableView.h– selectRowIndexes:byExtendingSelection:AnimatedTableView
– selectedColumnIndexesDragNDropOutlineView
IdentitySample
STUCAuthoringDeviceCocoaSample
With and Without Bindings
+
+ + +
+

selectionHighlightStyle

+

Returns the selection highlight style used by the receiver to indicate row and column selection. +

+

- (NSTableViewSelectionHighlightStyle)selectionHighlightStyle +

+
+

Returns The selection highlight style used by the receiver to use to indicate row and column selection. See “Selection Styles” for the possible values. +

+
+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.5+NSTableView.h
+
+ + +
+

setAllowsColumnReordering:

+

Controls whether the user can drag column headers to reorder columns. +

+

- (void)setAllowsColumnReordering:(BOOL)flag +

+
+

flag YES to allow the user to reorder columns, otherwise NO. +

+
+
+ +

The default is YES. You can rearrange columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnReordering
– moveColumn:toColumn:
+
+ + +
+

setAllowsColumnResizing:

+

Controls whether the user can resize columns by dragging between headers. +

+

- (void)setAllowsColumnResizing:(BOOL)flag +

+
+

flag YES to allow the user to resize columns, otherwise NO. +

+
+
+ +

The default is YES. You can resize columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnResizing
+
+ + +
+

setAllowsColumnSelection:

+

Controls whether the user can select an entire column by clicking its header. +

+

- (void)setAllowsColumnSelection:(BOOL)flag +

+
+

flag YES to allow the user to select columns, otherwise NO. +

+
+
+ +

The default is NO. You can select columns programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsColumnSelection
– selectColumn:byExtendingSelection:
– setAllowsColumnReordering:
+
+ + +
+

setAllowsEmptySelection:

+

Controls whether the receiver allows zero rows or columns to be selected. +

+

- (void)setAllowsEmptySelection:(BOOL)flag +

+
+

flag YES if an empty selection is allowed, otherwise NO. +

+
+
+ +

The default is YES. +

Unlike with the other settings that affect selection behavior, you cannot set an empty selection programmatically if empty selection is disallowed. +

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsEmptySelection
– deselectAll:
– deselectColumn:
– deselectRow:
+
+ + +
+

setAllowsMultipleSelection:

+

Controls whether the user can select more than one row or column at a time. +

+

- (void)setAllowsMultipleSelection:(BOOL)flag +

+
+

flag YES to allow the user to select multiple rows or columns, otherwise NO. +

+
+
+ +

The default is NO. You can select multiple columns or rows programmatically regardless of this setting. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– allowsMultipleSelection
– selectColumn:byExtendingSelection:
– selectRow:byExtendingSelection:
+
+ + +
+

setAllowsTypeSelect:

+

Sets whether the receiver allows the user to type characters to select rows. +

+

- (void)setAllowsTypeSelect:(BOOL)value +

+
+

value YES if the receiver allows type selection, otherwise NO. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.5+NSTableView.h– allowsTypeSelect
+
+ + +
+

setAutosaveName:

+

Sets the name under which table information is automatically saved to name. +

+

- (void)setAutosaveName:(NSString *)name +

+
+ +

If name is different from the current name, this method also reads in the saved information and sets the order and width of this table view’s columns to match. +

The table information is saved separately for each user and for each application that user uses. Note that even though a table view has an autosave name, it may not be saving table information automatically. To set whether table information is being saved automatically, use setAutosaveTableColumns:. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveName
– setAutosaveTableColumns:
+
+ + +
+

setAutosaveTableColumns:

+

Sets whether the order and width of this table view’s columns are automatically saved. +

+

- (void)setAutosaveTableColumns:(BOOL)flag +

+
+ +

If flag is different from the current value, this method also reads in the saved information and sets the table options to match. +

The table information is saved separately for each user and for each application that user uses. Note that if autosaveName returns nil, this setting is ignored and table information isn’t saved. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– autosaveTableColumns
– setAutosaveName:
+
+ + +
+

setBackgroundColor:

+

Sets the receiver’s background color to a given color. +

+

- (void)setBackgroundColor:(NSColor *)aColor +

+
+

aColor The background color for the receiver. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– backgroundColor
+
+ + +
+

setColumnAutoresizingStyle:

+

Sets the column autoresizing style of the receiver to a given style. +

+

- (void)setColumnAutoresizingStyle:(NSTableViewColumnAutoresizingStyle)style +

+
+

style The column autoresizing style for the receiver. For possible values, see “Autoresizing Styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.4+NSTableView.h– columnAutoresizingStyle
+
+ + +
+

setCornerView:

+

Sets the receiver’s corner view to a given view. +

+

- (void)setCornerView:(NSView *)aView +

+
+

aView The corner view for the receiver. +

+
+
+ +

The default corner view merely draws a bezeled rectangle using a blank NSTableHeaderCell object, but you can replace it with a custom view that displays an image or with a control that can handle mouse events, such as a select all button. Your custom corner view should be as wide as a vertical NSScroller object and as tall as the receiver’s header view. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– cornerView
– setHeaderView:
+
+ + +
+

setDataSource:

+

Sets the receiver’s data source to a given object. +

+

- (void)setDataSource:(id < NSTableViewDataSource >)anObject +

+
+

anObject The data source for the receiver. The object must implement the appropriate methods of the NSTableDataSource informal protocol. +

+
+
+ +

In a managed memory environment, the receiver maintains a weak reference to the data source (that is, it does not retain the data source, see Communicating With Objects). After setting the data source, this method invokes tile. +

This method raises an NSInternalInconsistencyException if anObject doesn’t respond to either numberOfRowsInTableView: or tableView:objectValueForTableColumn:row:. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– dataSourceTimelineToTC
+
+ + +
+

setDelegate:

+

Sets the receiver’s delegate to a given object. +

+

- (void)setDelegate:(id < NSTableViewDelegate >)anObject +

+
+

anObject The delegate for the receiver. +

+
+
+ +

In a managed memory environment, the receiver maintains a weak reference to the delegate (that is, it does not retain the delegate, see Communicating With Objects). +

+ +
+ +
+

Special Considerations

+

When you call the tableview’s setDelegate: method, the delegate is automatically registered for the following notifications with the following delegate methods: +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– delegate
+
+ + +
+

setDoubleAction:

+

Sets the message sent to the target when the user double-clicks an uneditable cell or a column header to a given selector. +

+

- (void)setDoubleAction:(SEL)aSelector +

+
+

aSelector The message the receiver sends to its target when the user double-clicks an uneditable cell or a column header. +

+
+
+ +

If the double-clicked cell is editable, this message isn’t sent and the cell is edited instead. You can use this method to implement features such as sorting records according to the column that was double-clicked. See also clickedRow which you can use to determine if a row was clicked rather than the column heading. +

For the method to have any effect, the receiver’s action and target must be set to the class in which the selector is declared. See Action Messages for additional information on action messages. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– doubleActionScriptingBridgeFinder
+
+ + +
+

setDraggingDestinationFeedbackStyle:

+

Sets the feedback style displayed when the user drags over the table view. +

+

- (void)setDraggingDestinationFeedbackStyle:(NSTableViewDraggingDestinationFeedbackStyle)style +

+
+

style The dragging feedback style. See “NSTableViewDraggingDestinationFeedbackStyle” for the possible values. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– draggingDestinationFeedbackStyle
+
+ + +
+

setDraggingSourceOperationMask:forLocal:

+

Sets the default operation mask returned by draggingSourceOperationMaskForLocal: to mask. +

+

- (void)setDraggingSourceOperationMask:(NSDragOperation)mask forLocal:(BOOL)isLocal +

+
+ +

If isLocal is YES then mask applies when the destination object is in the same application. If isLocal is NO then mask applies when the destination object in an application outside the receiver's application. NSTableView will archive the operation mask you set for each isLocal setting. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.4+NSTableView.h
+
+ + +
+

setDropRow:dropOperation:

+

Used if you wish to “retarget” the proposed drop. +

+

- (void)setDropRow:(NSInteger)row dropOperation:(NSTableViewDropOperation)operation +

+
+ +

To specify a drop on the second row, one would specify row as 1, and operation as NSTableViewDropOn. To specify a drop below the last row, one would specify row as [self numberOfRows] and operation as NSTableViewDropAbove. Passing a value of –1 for row, and NSTableViewDropOn as the operation causes the entire table view to be highlighted rather than a specific row. This is useful if the data displayed by the receiver does not allow the user to drop items at a specific row location. +

+ +
+ + + + + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hDemoMonkey
EnhancedAudioBurn
iSpend
MP3 Player
With and Without Bindings
+
+ + +
+

setFocusedColumn:

+

Sets the currently focused column to the specified index. +

+

- (void)setFocusedColumn:(NSInteger)focusedColumn +

+
+

focusedColumn The index of the column to focus, or -1 if there should be no focused column. +

+
+
+ +

This method will redisplay the old previously focusedColumn and the newly focusedColumn, if required. +

The focused column has a focus ring drawn around the selectedRow that intersects with the focusedColumn. +

You should not override this method. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– focusedColumn
– shouldFocusCell:atColumn:row:
+
+ + +
+

setGridColor:

+

Sets the color used to draw grid lines to a given color. +

+

- (void)setGridColor:(NSColor *)aColor +

+
+

aColor The color to use to draw grid lines. +

+
+
+ +

The default color is gray. +

+ +
+ + + + + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– drawGridInClipRect:
– gridColor
– setDrawsGrid:
+
+ + +
+

setGridStyleMask:

+

Sets the grid style mask to specify if no grid lines, vertical grid lines, or horizontal grid lines should be displayed. +

+

- (void)setGridStyleMask:(NSUInteger)gridType +

+
+

gridType The grid style mask. Possible values for gridType are described in “Grid styles.” +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– gridStyleMask
+
+ + +
+

setHeaderView:

+

Sets the receiver’s header view to a given header view. +

+

- (void)setHeaderView:(NSTableHeaderView *)aHeaderView +

+
+

aHeaderView The header view for the receiver. +

+
+
+ +

If aHeaderView is nil, the current header view is removed. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– headerView
– setCornerView:
+
+ + +
+

setHighlightedTableColumn:

+

Sets aTableColumn to be the currently highlighted column header. +

+

- (void)setHighlightedTableColumn:(NSTableColumn *)aTableColumn +

+ + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– highlightedTableColumnNSOperationSample
+
+ + +
+

setIndicatorImage:inTableColumn:

+

Sets the indicator image of aTableColumn to anImage. +

+

- (void)setIndicatorImage:(NSImage *)anImage inTableColumn:(NSTableColumn *)aTableColumn +

+
+ +

anImage is retained and released by the table view as appropriate. +

The default sorting order indicators are available as named NSImage objects. These images are accessed using [NSImage imageNamed:] passing either @"NSAscendingSortIndicator" (the "^" icon), and @"NSDescendingSortIndicator" (the "v" icon). +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– indicatorImageInTableColumn:NSOperationSample
+
+ + +
+

setIntercellSpacing:

+

Sets the width and height between cells to those in a given NSSize struct. +

+

- (void)setIntercellSpacing:(NSSize)aSize +

+
+

aSize An NSSize struct that defines the width and height between cells in the receiver. +

+
+
+ +

The receiver redisplays after the new value is set. +

The default intercell spacing is (3.0, 2.0). +

Table views normally have a 1 pixel separation between consecutively selected rows or columns. An intercell spacing of (1.0, 1.0) or greater is required if you want this separation. An intercell spacing of (0.0, 0.0) forces there to be no separation between consecutive selections. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– intercellSpacing
+
+ + +
+

setRowHeight:

+

Sets the height for rows to a given value. +

+

- (void)setRowHeight:(CGFloat)rowHeight +

+
+

rowHeight The height for rows. +

+
+
+ +

After the height is set, this method invokes tile. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– rowHeightMountains
+
+ + +
+

setSelectionHighlightStyle:

+

Sets the selection highlight style used by the receiver to indicate row and column selection. +

+

- (void)setSelectionHighlightStyle:(NSTableViewSelectionHighlightStyle)selectionHighlightStyle +

+
+

selectionHighlightStyle The selection highlight style to use to indicate row and column selection. See “Selection Styles” for the possible values. +

+
+
+ +

Setting the selection highlight style to NSTableViewSelectionHighlightStyleSourceList causes the receiver to draw its background using the source list style. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.5+NSTableView.h
+
+ + +
+

setSortDescriptors:

+

Sets the receiver’s sort descriptors to the NSSortDescriptor objects in array. +

+

- (void)setSortDescriptors:(NSArray *)array +

+
+ +

A table column is considered sortable if it has a sort descriptor that specifies the sorting direction, a key to sort by, and a selector defining how to sort. The array of sort descriptors is archived. Sort descriptors persist along with other column information if an autosave name is set. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– sortDescriptors
+
+ + +
+

setUsesAlternatingRowBackgroundColors:

+

Sets whether the receiver uses the standard alternating row colors for its background. +

+

- (void)setUsesAlternatingRowBackgroundColors:(BOOL)useAlternatingRowColors +

+
+

useAlternatingRowColors YES to specify standard alternating row colors for the background, NO to specify a solid color. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– usesAlternatingRowBackgroundColors
+
+ + +
+

setVerticalMotionCanBeginDrag:

+

Sets whether vertical motion is treated as a drag or selection change to flag. +

+

- (void)setVerticalMotionCanBeginDrag:(BOOL)flag +

+
+ +

If flag is NO then vertical motion will not start a drag. The default is YES. +

Note that horizontal motion is always a valid motion to begin a drag. Most often, you would want to disable vertical dragging when it’s expected that horizontal dragging is the natural motion. +

+ +
+ + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– verticalMotionCanBeginDragQTKitMovieShuffler
+
+ + +
+

shouldFocusCell:atColumn:row:

+

Returns whether the fully cell at the specified row and column can be made the focused cell or not. +

+

- (BOOL)shouldFocusCell:(NSCell *)cell atColumn:(NSInteger)column row:(NSInteger)row +

+
+

cell The prepared cell to be focused upon. +

+

column The column of the cell. +

+

row The row of the cell. +

+

Returns YES if the cell can be made the focused cell, otherwise NO. +

+
+
+ +

By default, only cells that are enabled can be focused. In addition, if the cell is an NSTextFieldCell, it will can only be focused if it is selectable or editable, and the table view delegate responds YES to -tableView:shouldEditTableColumn:row:. Subclasses can override this to further control what cells can and cannot be made focused. +

+ +
+ + + + + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.6+NSTableView.h– focusedColumn
– setFocusedColumn:
+
+ + +
+

sizeLastColumnToFit

+

Resizes the last column if there’s room so the receiver fits exactly within its enclosing clip view. +

+

- (void)sizeLastColumnToFit +

+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setAutoresizesAllColumnsToFit:
+
+ + +
+

sizeToFit

+

Changes the width of columns in the receiver so all columns are visible. +

+

- (void)sizeToFit +

+
+ +

All columns are resized to the same size, up to a column's maximum size. This method then invokes tile. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.3+NSTableView.h
+
+ + +
+

sortDescriptors

+

Returns the receiver’s sort descriptors. +

+

- (NSArray *)sortDescriptors +

+ + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.3+NSTableView.h– setSortDescriptors:DictionaryController
+
+ + +
+

tableColumnWithIdentifier:

+

Returns the NSTableColumn object for the first column whose identifier is equal to a given object. +

+

- (NSTableColumn *)tableColumnWithIdentifier:(id)anObject +

+
+

anObject A column identifier. +

+

Returns The NSTableColumn object for the first column whose identifier is equal to anObject, as compared using isEqual:, or nil if no columns are found with the specified identifier. +

+
+ + + + + + + + + + + + + + + + + +
Available inDeclared inSee alsoSample projects
Mac OS X 10.0+NSTableView.h– columnWithIdentifier:DragNDropOutlineView
QTKitMovieShuffler
+
+ + +
+

tableColumns

+

Returns an array containing the the NSTableColumn objects in the receiver. +

+

- (NSArray *)tableColumns +

+
+

Returns An array containing the the NSTableColumn objects in the receiver. +

+
+
+ +

The array returned by tableColumns contains all receiver’s columns, including those that are hidden. +

+ +
+ + + + + + + + + + + + + + + + + + + + + +
Available inDeclared inSample projects
Mac OS X 10.0+NSTableView.hAnimatedTableView
DragNDropOutlineView
NSOperationSample
People
+
+ + +
+

textDidBeginEditing:

+

Posts an NSControlTextDidBeginEditingNotification to the default notification center. +

+

- (void)textDidBeginEditing:(NSNotification *)aNotification +

+
+

aNotification The notification posted by the field editor; see the NSText class specifications for more information on this text delegate method. +

+
+
+ +

For more details, see the NSControl class specification. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textShouldBeginEditing:
+
+ + +
+

textDidChange:

+

Sends textDidChange: to the edited cell and posts an NSControlTextDidChangeNotification to the default notification center. +

+

- (void)textDidChange:(NSNotification *)aNotification +

+
+

aNotification The notification posted by the field editor. +

+
+
+ +

See the NSText class specification for more information on this text delegate method. For additional details, see the NSControl class specification. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

textDidEndEditing:

+

Updates the data source based on the newly edited value and selects another cell for editing if possible according to the character that ended editing (Return, Tab, Backtab). +

+

- (void)textDidEndEditing:(NSNotification *)aNotification +

+
+ +

aNotification is the NSNotification posted by the field editor; see the NSText class specification for more information on this text delegate method. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textShouldEndEditing:
+
+ + +
+

textShouldBeginEditing:

+

Queries the delegate using control:textShouldBeginEditing:, returning the delegate’s response, or simply returning YES to allow editing of textObject if the delegate doesn’t respond to that method. +

+

- (BOOL)textShouldBeginEditing:(NSText *)textObject +

+
+ +

See the NSText class specification for more information on this text delegate method. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textDidBeginEditing:
+
+ + +
+

textShouldEndEditing:

+

Validates the textObject cell being edited and queries the delegate using control:textShouldEndEditing:, returning the delegate’s response if it responds to that method. +

+

- (BOOL)textShouldEndEditing:(NSText *)textObject +

+
+ +

If it doesn’t, it returns YES if the cell’s new value is valid and NO if it isn’t. See the NSText class specification for more information on this text delegate method. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– textDidEndEditing:
+
+ + +
+

tile

+

Properly sizes the receiver and its header view and marks it as needing display. +

+

- (void)tile +

+
+ +

Also resets cursor rectangles for the header view and line scroll amounts for the NSScrollView object. +

+ +
+ + + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

usesAlternatingRowBackgroundColors

+

Returns a Boolean value that indicates whether the receiver uses the standard alternating row colors for its background. +

+

- (BOOL)usesAlternatingRowBackgroundColors +

+
+

Returns YES if the receiver uses standard alternating row colors for the background, NO if it uses a solid color. +

+
+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.3+NSTableView.h– setUsesAlternatingRowBackgroundColors:
+
+ + +
+

verticalMotionCanBeginDrag

+

Returns whether vertical motion is treated as a drag or selection change. +

+

- (BOOL)verticalMotionCanBeginDrag +

+
+ +

NO means that vertical motion will not start a drag. Note that horizontal motion is always a valid motion to begin a drag. +

+ +
+ + + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– setVerticalMotionCanBeginDrag:
+
+ +
+ +
+ +
+

NSTableViewColumnDidMoveNotification

+

Posted whenever a column is moved by user action in an NSTableView object. The notification object is the table view in which a column moved. The userInfo dictionary contains the following information: +

+ + + + + + + + + + + +
Available inDeclared inSee also
Mac OS X 10.0+NSTableView.h– moveColumn:toColumn:
+
+ + +
+

NSTableViewColumnDidResizeNotification

+

Posted whenever a column is resized in an NSTableView object. The notification object is the table view in which a column was resized. The userInfo dictionary contains the following information: +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

NSTableViewSelectionDidChangeNotification

+

Posted after an NSTableView object's selection changes. The notification object is the table view whose selection changed. This notification does not contain a userInfo dictionary. +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ + +
+

NSTableViewSelectionIsChangingNotification

+

Posted as an NSTableView object's selection changes (while the mouse button is still down). The notification object is the table view whose selection is changing. This notification does not contain a userInfo dictionary. +

+ + + + + + + + + +
Available inDeclared in
Mac OS X 10.0+NSTableView.h
+
+ +
+ +
+ + + diff --git a/IGKArrayController.m b/IGKArrayController.m index b242fd4..4f9387b 100644 --- a/IGKArrayController.m +++ b/IGKArrayController.m @@ -37,11 +37,14 @@ - (void)fetch:(void (^)(NSArray *managedObjectIDs, BOOL fetchContainsVip))comple NSManagedObjectContext *ctx = [[[NSApp delegate] kitController] managedObjectContext]; dispatch_queue_t queue = [[[NSApp delegate] kitController] backgroundQueue]; + if (!queue) + return; + //Copy objects that may change while we're doing this NSPredicate *copiedPredicate = [predicate copy]; NSArray *copiedCurrentSortDescriptors = [currentSortDescriptors copy]; NSManagedObjectID *vipObjectID = [vipObject objectID]; - + dispatch_async(queue, ^{ NSFetchRequest *request = [[NSFetchRequest alloc] init]; diff --git a/IGKDocRecordManagedObject.m b/IGKDocRecordManagedObject.m index c80b900..9c9e951 100644 --- a/IGKDocRecordManagedObject.m +++ b/IGKDocRecordManagedObject.m @@ -408,6 +408,16 @@ - (IGKDocRecordManagedObject *)xcontainer return [self valueForKey:@"misccontainer"]; } +- (NSString *)xsuperclassname +{ + return [self valueForSoftKey:@"superclass"]; +} + +- (NSString *)xconforms +{ + return @""; +} + - (NSImage *)normalIcon { return [self iconForSelectedState:NO]; diff --git a/IGKHTMLGenerator.m b/IGKHTMLGenerator.m index c2bf713..316f1f4 100644 --- a/IGKHTMLGenerator.m +++ b/IGKHTMLGenerator.m @@ -172,6 +172,8 @@ - (NSString *)html //Append a footer [self footer]; + NSLog(@"outputString = \n%@", outputString); + return outputString; } - (void)html_all diff --git a/IGKPredicateEditor.h b/IGKPredicateEditor.h new file mode 100644 index 0000000..a2ef862 --- /dev/null +++ b/IGKPredicateEditor.h @@ -0,0 +1,16 @@ +// +// IGKPredicateEditor.h +// Ingredients +// +// Created by Alex Gordon on 23/03/2010. +// Copyright 2010 Fileability. All rights reserved. +// + +#import + + +@interface IGKPredicateEditor : NSPredicateEditor { + +} + +@end diff --git a/IGKPredicateEditor.m b/IGKPredicateEditor.m new file mode 100644 index 0000000..30cbdc0 --- /dev/null +++ b/IGKPredicateEditor.m @@ -0,0 +1,57 @@ +// +// IGKPredicateEditor.m +// Ingredients +// +// Created by Alex Gordon on 23/03/2010. +// Copyright 2010 Fileability. All rights reserved. +// + +#import "IGKPredicateEditor.h" + + +@implementation IGKPredicateEditor + +- (NSPredicate *)predicate +{ + //We want to remove any null comparison predicates from our predicate + NSCompoundPredicate *predicate = [super predicate]; + NSLog(@"Pre = %@", predicate); + + if (!predicate) + return nil; + + if ([predicate isKindOfClass:[NSComparisonPredicate class]]) + { + predicate = [[NSCompoundPredicate alloc] initWithType:NSAndPredicateType subpredicates:[NSArray arrayWithObject:predicate]]; + } + else if (![predicate isKindOfClass:[NSCompoundPredicate class]]) + { + return predicate; + } + + NSArray *subpredicates = [predicate subpredicates]; + NSMutableArray *newSubpredicates = [[NSMutableArray alloc] initWithCapacity:[subpredicates count]]; + + for (NSComparisonPredicate *cmpP in subpredicates) + { + NSExpression *right = [cmpP rightExpression]; + if ([right expressionType] != NSConstantValueExpressionType) + { + [newSubpredicates addObject:cmpP]; + continue; + } + + id cv = [right constantValue]; + + if (cv && (![cv respondsToSelector:@selector(length)] || [cv length] > 0)) + { + [newSubpredicates addObject:cmpP]; + } + } + + NSLog(@"newSubpredicates = %@", newSubpredicates); + + return [[NSCompoundPredicate alloc] initWithType:[predicate compoundPredicateType] subpredicates:newSubpredicates]; +} + +@end diff --git a/IGKScraper.m b/IGKScraper.m index 3c449e4..dbb5dce 100644 --- a/IGKScraper.m +++ b/IGKScraper.m @@ -965,10 +965,12 @@ - (void)scrapeMethodChildren:(NSArray *)children index:(NSUInteger)index managed if ([[[ul name] lowercaseString] isEqual:@"ul"]) { for (NSXMLElement *li in [ul children]) - { + { NSXMLElement *codeElement = [[li children] lastObject]; NSXMLElement *a = [[codeElement children] lastObject]; + if (![a isKindOfClass:[NSXMLElement class]]) + continue; NSString *href = [[a attributeForName:@"href"] commentlessStringValue]; NSString *strval = [a commentlessStringValue]; diff --git a/IGKWindowController.h b/IGKWindowController.h index 686d64b..a8a11f1 100644 --- a/IGKWindowController.h +++ b/IGKWindowController.h @@ -94,7 +94,9 @@ typedef enum { IBOutlet NSView *searchView; IBOutlet NSSearchField *searchViewField; + IBOutlet NSScrollView *searchViewPredicateEditorScrollView; IBOutlet NSPredicateEditor *searchViewPredicateEditor; + IBOutlet NSScrollView *searchViewTableScrollView; IBOutlet NSTableView *searchViewTable; NSPredicate *advancedFilterPredicate; diff --git a/IGKWindowController.m b/IGKWindowController.m index 96492cc..5d2d848 100644 --- a/IGKWindowController.m +++ b/IGKWindowController.m @@ -63,6 +63,8 @@ - (id)init [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(showSavingProgressSheet:) name:@"IGKWillSaveIndex" object:nil]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(userDefaultsDidChange:) name:NSUserDefaultsDidChangeNotification object:nil]; + + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(ruleEditorRowsDidChange:) name:NSRuleEditorRowsDidChangeNotification object:searchViewPredicateEditor]; } return self; @@ -591,20 +593,29 @@ - (void)executeAdvancedSearch:(NSString *)query { sideSearchQuery = query; + NSPredicate *predicate = nil; + NSMutableArray *subpredicates = [[NSMutableArray alloc] initWithCapacity:2]; + if ([query length] > 0) { - NSPredicate *fetchPredicate = nil; if (selectedFilterDocset) - fetchPredicate = [NSPredicate predicateWithFormat:@"name CONTAINS[c] %@ && docset == %@", query, selectedFilterDocset]; + predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[c] %@ && docset == %@", query, selectedFilterDocset]; else - fetchPredicate = [NSPredicate predicateWithFormat:@"name CONTAINS[c] %@", query]; - - [advancedController setPredicate:fetchPredicate]; + predicate = [NSPredicate predicateWithFormat:@"name CONTAINS[c] %@", query]; } + + if ([searchViewPredicateEditor predicate]) + [subpredicates addObject:[searchViewPredicateEditor predicate]]; + + if (predicate) + [subpredicates addObject:predicate]; + + + if ([subpredicates count]) + [advancedController setPredicate:[[NSCompoundPredicate alloc] initWithType:NSAndPredicateType subpredicates:subpredicates]]; else - { [advancedController setPredicate:[NSPredicate predicateWithValue:NO]]; - } + [advancedController refresh]; } @@ -727,6 +738,33 @@ - (IBAction)changeSelectedFilterDocset:(id)sender [self executeSearch:sideSearchViewField]; } +- (void)ruleEditorRowsDidChange:(NSNotification *)notification +{ + //Work out the new height of the rule editor + NSUInteger numRows = [searchViewPredicateEditor numberOfRows]; + CGFloat height = numRows * [searchViewPredicateEditor rowHeight]; + + NSView *superview = [searchViewPredicateEditorScrollView superview]; + CGFloat superviewHeight = [superview frame].size.height; + + const CGFloat maximumHeight = 200; + if (height > maximumHeight) + height = maximumHeight; + + NSRect predicateEditorRect = [searchViewPredicateEditorScrollView frame]; + predicateEditorRect.size.height = height; + predicateEditorRect.origin.y = superviewHeight - height; + + NSRect tableRect = [searchViewTableScrollView frame]; + tableRect.size.height = superviewHeight - height; + tableRect.origin.y = 0; + + [searchViewPredicateEditorScrollView setFrame:predicateEditorRect]; + [searchViewTableScrollView setFrame:tableRect]; + + [self executeSearch:searchViewField]; +} + #pragma mark - #pragma mark Table View Delegate diff --git a/Ingredients.xcodeproj/project.pbxproj b/Ingredients.xcodeproj/project.pbxproj index 241f914..9f66cda 100644 --- a/Ingredients.xcodeproj/project.pbxproj +++ b/Ingredients.xcodeproj/project.pbxproj @@ -11,6 +11,8 @@ 0C7C02E7110E000800412666 /* XBNewSourceListCell.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C7C02E5110E000800412666 /* XBNewSourceListCell.m */; }; 0C7C02ED110E006000412666 /* CHSymbolButtonImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C7C02EB110E006000412666 /* CHSymbolButtonImage.h */; }; 0C7C02EE110E006000412666 /* CHSymbolButtonImage.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C7C02EC110E006000412666 /* CHSymbolButtonImage.m */; }; + 7507CF4511598197008449DE /* IGKPredicateEditor.h in Headers */ = {isa = PBXBuildFile; fileRef = 7507CF4311598197008449DE /* IGKPredicateEditor.h */; }; + 7507CF4611598197008449DE /* IGKPredicateEditor.m in Sources */ = {isa = PBXBuildFile; fileRef = 7507CF4411598197008449DE /* IGKPredicateEditor.m */; }; 750DFBCF114671CC004C5D08 /* IGKMattePopUpButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 750DFBCE114671CC004C5D08 /* IGKMattePopUpButton.m */; }; 751D2AD21126E4A100403E64 /* IGKArrayController.h in Headers */ = {isa = PBXBuildFile; fileRef = 751D2AD01126E4A100403E64 /* IGKArrayController.h */; }; 751D2AD31126E4A100403E64 /* IGKArrayController.m in Sources */ = {isa = PBXBuildFile; fileRef = 751D2AD11126E4A100403E64 /* IGKArrayController.m */; }; @@ -172,6 +174,8 @@ 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; 2F7446980DB6B7EA00F9684A /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; 32CA4F630368D1EE00C91783 /* Ingredients_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Ingredients_Prefix.pch; sourceTree = ""; }; + 7507CF4311598197008449DE /* IGKPredicateEditor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IGKPredicateEditor.h; sourceTree = ""; }; + 7507CF4411598197008449DE /* IGKPredicateEditor.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IGKPredicateEditor.m; sourceTree = ""; }; 750DFBCD114671CC004C5D08 /* IGKMattePopUpButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IGKMattePopUpButton.h; sourceTree = ""; }; 750DFBCE114671CC004C5D08 /* IGKMattePopUpButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IGKMattePopUpButton.m; sourceTree = ""; }; 751D2AD01126E4A100403E64 /* IGKArrayController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IGKArrayController.h; sourceTree = ""; }; @@ -378,6 +382,8 @@ 75A4B48411429ECD008CA9E8 /* IGKTableOfContentsView.m */, 75A9AA9A11495DA300E539F2 /* IGKEaseInOutAnimatedView.h */, 75A9AA9B11495DA300E539F2 /* IGKEaseInOutAnimatedView.m */, + 7507CF4311598197008449DE /* IGKPredicateEditor.h */, + 7507CF4411598197008449DE /* IGKPredicateEditor.m */, ); name = "Views & Cells"; sourceTree = ""; @@ -651,6 +657,7 @@ 75BD177E1143E94000E67594 /* IGKPreferencesController.h in Headers */, 75943C0B11441AE0004126E7 /* IGKBackForwardManager.h in Headers */, 75A9AA9C11495DA300E539F2 /* IGKEaseInOutAnimatedView.h in Headers */, + 7507CF4511598197008449DE /* IGKPredicateEditor.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -814,6 +821,7 @@ 75A4B48611429ECD008CA9E8 /* IGKTableOfContentsView.m in Sources */, 75943C0C11441AE0004126E7 /* IGKBackForwardManager.m in Sources */, 75A9AA9D11495DA300E539F2 /* IGKEaseInOutAnimatedView.m in Sources */, + 7507CF4611598197008449DE /* IGKPredicateEditor.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Ingredients_DataModel.xcdatamodel/elements b/Ingredients_DataModel.xcdatamodel/elements index d19625c201f013166412fef4e64c00632f721d44..6390644a2a441792cd6e69cf462d5f82d0513a59 100644 GIT binary patch literal 263893 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%0Dgtse-J~RRmYWRHRlERgA5eRMA?|R?%58 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 diff --git a/Ingredients_DataModel.xcdatamodel/layout b/Ingredients_DataModel.xcdatamodel/layout index 5b44db0164bc1224dcc14a17937cd3bb280b2df8..9beba92199e08da374a45659e28c4d9b8a762be0 100644 GIT binary patch literal 101431 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 literal 101280 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%0Ayk%|c**NCZLjR@9=V2ucJj3CDd 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