SimpleBrowser/AppController.m
/* |
Copyright (C) 2016 Apple Inc. All Rights Reserved. |
See LICENSE.txt for this sample’s licensing information |
Abstract: |
Application Controller object, and the NSBrowser delegate. An instance of this object is in the MainMenu.xib. |
*/ |
#import "AppController.h" |
#import "FileSystemNode.h" |
@interface AppController () |
// please note bug #24527817 |
// NSBrowser column titles draw sporadic when navigating back with left arrow key (10.11) |
// |
@property (weak) IBOutlet NSBrowser *browser; |
@property (strong) FileSystemNode *rootNode; |
@end |
#pragma mark - |
@implementation AppController |
#pragma mark - NSBrowserDelegate |
// This method is optional, but makes the code much easier to understand |
// |
- (id)rootItemForBrowser:(NSBrowser *)browser { |
if (self.rootNode == nil) { |
_rootNode = [[FileSystemNode alloc] initWithURL:[NSURL fileURLWithPath:NSOpenStepRootDirectory()]]; |
} |
return self.rootNode; |
} |
- (NSInteger)browser:(NSBrowser *)browser numberOfChildrenOfItem:(id)item { |
FileSystemNode *node = (FileSystemNode *)item; |
return node.children.count; |
} |
- (id)browser:(NSBrowser *)browser child:(NSInteger)index ofItem:(id)item { |
FileSystemNode *node = (FileSystemNode *)item; |
return [node.children objectAtIndex:index]; |
} |
- (BOOL)browser:(NSBrowser *)browser isLeafItem:(id)item { |
FileSystemNode *node = (FileSystemNode *)item; |
return !node.isDirectory || node.isPackage; // take into account packaged apps and documents |
} |
- (id)browser:(NSBrowser *)browser objectValueForItem:(id)item { |
FileSystemNode *node = (FileSystemNode *)item; |
return node.displayName; |
} |
@end |
Copyright © 2016 Apple Inc. All Rights Reserved. Terms of Use | Privacy Policy | Updated: 2016-04-29