I have a problem with NSCollectionView. According to this manual (https://www.youtube.com/watch?v=dw-sHMTsMVs), which seems to me is very simple.
I created NSCollectionView, NSArrayController which I bind NSMuttableArray * todoList and set Todo class. I joined ViewController with IBAOutlet NSArrayController. Everything seems OK, but when I call [arrayController addobject: todo], it throws an exception. see. pictures.
ViewController.h:
#import <Cocoa/Cocoa.h>
@interface ViewController : NSViewController{
IBOutlet NSArrayController *todoArrayController;
}
@property NSMutableArray *todoList;
@property IBOutlet NSImageView *logo;
@end
ViewController.m:
#import "ViewController.h"
#import "Db.h"
#import "TodoManager.h"
@interface NSURL (NSObject)
+(id)URLWithLocalDatabase:(NSString* )database username:(NSString* )username params:(NSDictionary* )params;
+(id)URLWithHost:(NSString* )host ssl:(BOOL)ssl username:(NSString* )username database:(NSString* )database params:(NSDictionary* )params;
+(id)URLWithHost:(NSString* )host port:(NSUInteger)port ssl:(BOOL)ssl username:(NSString* )username database:(NSString* )database params:(NSDictionary* )params;
@end
@implementation ViewController
@synthesize logo;
@synthesize todoList = _todoList;
const int WINDOW_WIDTH = 300;
TodoManager* todoManager;
- (void)awakeFromNib{
Todo *todo = [[Todo alloc]init];
todo.name = @"Shit";
_todoList = [[NSMutableArray alloc]init];
[todoArrayController addObject:todo];
}
- (void)viewDidLoad {
todoManager = [[TodoManager alloc] init];
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (void)setRepresentedObject:(id)representedObject {
[super setRepresentedObject:representedObject];
// Update the view, if already loaded.
}
- (void)notifikace:(id)sender{
NSUserNotification *notification = [NSUserNotification alloc];
notification.title = @"Kurva to je dobry";
notification.informativeText = @"TOTO je kurvesky dobrej text";
notification.soundName = NSUserNotificationDefaultSoundName;
[[NSUserNotificationCenter defaultUserNotificationCenter] deliverNotification:notification];
}
- (void)viewDidAppear{
//Nastaveni rozmeru a pozici okna
NSRect rozmery = NSMakeRect([[NSScreen mainScreen] frame].size.width - WINDOW_WIDTH, 0, WINDOW_WIDTH, [[NSScreen mainScreen] frame].size.height);
[self.view.window setFrame:rozmery display:true];
//Nastaveni pozadi okna
[self.view.window setBackgroundColor:[NSColor whiteColor]];
//Vždy top
[self.view.window setLevel:NSFloatingWindowLevel];
//Nastaveni loga
NSImage *image = [[NSImage alloc] initWithContentsOfFile:@"/Users/jasin/Documents/XcodeProjects/TestProjekt/TestProjekt/logo.png"];
[self.logo setImage: image];
}
@end
Layout & connections: http://www.jumina.cz/shot1.png