У меня есть класс с именем ServerImage (подраздел NSView), который я вызываю из моего AppController, но по какой-то причине он не отображается на экране. У меня есть другие виды, которые я могу рисовать и добавлять изображения, но по какой-то причине не этот. Я уверен, что чего-то не хватает в моем коде, но я просто не вижу этого. Вот соответствующий код из AppController:
//loop through masterServerDict and get server status
NSMutableString* key;
for(key in masterServerDict) {
ServerImage* newImage = [[ServerImage alloc] initWithFrame:NSMakeRect(200.0, 0.0, 48.0, 48.0)];
[newImage setServerName:key];
[[[NSApp mainWindow] contentView] addSubview:newImage];
[newImage setNeedsDisplay:YES];
}
masterServerDict - это изменяемый словарь, ключ - это имя сервера, объект - это массив, он содержит пути smb и afp к серверу, а также, подключен он или нет.
Вот ServerImage.h
#import <Cocoa/Cocoa.h>
@interface ServerImage : NSView {
NSString * serverName;
}
- (void) setServerName : (NSString* ) s;
@end
и ServerImage.m
#import "ServerImage.h"
@implementation ServerImage
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
NSLog(@"%f", self.frame.origin.x);
}
return self;
}
- (void)drawRect:(NSRect)rect {
NSLog(@"drawrect");
[[NSColor redColor] set];
NSRectFill(rect);
}
- (void) setServerName : (NSString* ) s {
NSLog(@"method");
serverName = s;
}
Я могу получить методы init и setServerName для регистрации, но не drawRect ...