文件名的NSArray不会在NSTableView中加载

时间:2019-05-28 20:20:12

标签: objective-c nstableview

我是初学者。我在2014年5月5日获取了由杰伊·韦斯鲁瓦(Jay Versluis)创建的桌子的代码。它最初有2列,并从2个数组填充表格。有用。我将表更改为1列,并有一个数组从目录中读取文件名。该数组读取的名称很好,但是我的表中什么也没有出现。任何帮助将不胜感激。

// ——————— Interface —————————
#import <Foundation/Foundation.h>

@interface TableController : NSObject <NSTableViewDataSource, NSTableViewDelegate>

@property (nonatomic, strong) NSArray *recipes;
@property NSFileManager *filemgr;
@property NSArray *filelist;

@end

// ———————— Implementation ———————————
#import "TableController.h"

@implementation TableController
static NSString* currentpath = @"/Users/rasweeny/Documents/Current_Recipes";
NSInteger count;

#pragma mark - Custom Initialisers
- (NSArray *)recipes {
    _filemgr = [NSFileManager defaultManager];
    _filelist = [_filemgr contentsOfDirectoryAtPath: currentpath error: nil];
    count = [_filelist count];    
    for (int i = 0; i < count; i++)
        NSLog (@"%@", [_filelist objectAtIndex: i]);

    return _recipes;
}

#pragma mark - Table View Data Source
- (NSInteger)numberOfRowsInTableView:(NSTableView *)tableView {
    // how many rows do we have here?
    return self.recipes.count;
}

- (id)tableView:(NSTableView *)tableView objectValueForTableColumn:(NSTableColumn *)tableColumn row:(NSInteger)row {   
    // populate each row of our table view with data
    return [self.recipes objectAtIndex:row];
}

#pragma mark - Table View Delegate
- (void)tableViewSelectionDidChange:(NSNotification *)notification {   
    NSTableView *tableView = notification.object;
    NSLog(@"User has selected row %ld", (long)tableView.selectedRow);
}

@end

0 个答案:

没有答案