Проблема при создании нового окна в какао Mac при нажатии кнопки - PullRequest
0 голосов
/ 05 апреля 2011

У меня есть два класса, firstView и secondView. В firstView.h

#import "SecondView.h"
#import "FirstView"


@interface FirstView : NSObject {

    IBOutlet NSButton *test;
    secondView *mySecond;
}

@property (nonatomic, retain) IBOutlet NSButton *test;


-(IBAction) buttonClicked:(id)sender;

@end

В firstView.m

#import "FirstView.h"


@implementation FirstView
@synthesize test;


-(IBAction) buttonClicked:(id)sender{

    NSLog(@"HELLO!!!");
    if (!mySecond) {
        // If the second view controller doesn't exist yet, make it!
        mySecond = [[secondView alloc] init];
    }
    [mySecond displayWindow]; 
}

@end

В secondView.h

#import 


@interface SecondView : NSObject {

    IBOutlet NSWindow *progressWindow;
    IBOutlet NSButton *testNew;
}

@property (nonatomic, retain) IBOutlet  NSButton *testNew;

- (void)displayWindow;

-(IBAction) buttonClickedNew:(id)sender;

@end

In secondView.m

#import "SecondView.h"


@implementation SecondView
@synthesize testNew;

- (id)init {

    if (self = [super init]) {
        NSLog(@"HAI!!");

        [NSBundle loadNibNamed:@"Next" owner:self];
    }
    return self;

}

- (void)displayWindow {

    if (![progressWindow isVisible]) {
        NSLog(@"ON SECOND!!!");
        [progressWindow setIsVisible:YES];
        [progressWindow orderFront:nil];        
    }

}

-(IBAction) buttonClickedNew:(id)sender {

    NSLog(@"GOOD!!!");
}

@end

Но я получаю вывод как ....

Running…
2011-04-05 16:12:30.400 toDoListMac[6558:a0f] HELLO!!!
2011-04-05 16:12:30.402 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.404 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.406 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.408 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.409 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.410 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.411 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.413 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.414 toDoListMac[6558:a0f] HAI!!
2011-04-05 16:12:30.415 toDoListMac[6558:a0f] HAI!!

secondView 'init' вызывает бесконечное количество раз! Пожалуйста ... пожалуйста ... помогите мне .....

То, что я пытаюсь сделать, это ... Я хочу открыть еще одно окно / окно для определенного действия, скажем, щелчок кнопки .... пожалуйста, помогите мне ...

1 Ответ

0 голосов
/ 05 апреля 2011

В Какао есть класс для управления окнами: NSWindowController Почему вы его не используете? Подклассы NSWindowController дает вам все гайки и болты, а затем вам просто нужно добавить методы, специфичные для вашего варианта использования. Гораздо проще.

Кроме того, неясно, являются ли это отдельными окнами или просто отдельными видами. Если последнее, вы хотите исследовать NSViewController

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...