Дано
@interface Canvas:NSView {
NSNumber * currentToolType;
...
}
объявлено в моем .h файле
и в .m файле
- (id)initWithFrame:(NSRect)frame {
self = [super initWithFrame:frame];
if (self) {
currentToolType=[[NSNumber alloc]initWithInt:1];
}
return self;
}
и далее вниз
-(void)mouseUp:(NSEvent *)event
{
NSLog(@"tool value in event: %d",[currentToolType intValue]);
//rest of code
}
-(NSBezzierPath *)drawPath:(NSRect)aRect
{
NSLog(@"tool value in draw: %d",[currentToolType intValue]);
// остаток кода метода drawPath, который использует значение currentToolType в стате переключателя
}
-(IBAction)selectToolOne:(id)sender
{
[currentToolType release];
[currentToolType = [[NSNumber alloc]initWithInt:0];
}
-(IBAction)selectToolTwo:(id)sender
{
[currentToolType release];
[currentToolType = [[NSNumber alloc]initWithInt:1];
}
Методы действий - единственное место, где currentToolType
изменяется. Но, по какой-то причине, похоже, что это currentToolType
в mouseUp
. Я не писал (и не синтезировал) методы доступа для var, поскольку он используется только сам по себе. Я заметил, что initWithFrame
вызывается дважды - я предполагаю, что это для родительского окна и NSView?
Чего мне не хватает?
СПАСИБО!
Это XCode-приложение, основанное на Document, использующее COCOA и Obj-C. Я новичок в обоих.