Я должен создать класс c ++ с методами c ++, которые сделаны из target-c и используют какао, но теперь я столкнулся с проблемой и просто не могу ее решить, потому что ядовольно новый в объективе-c.Также дело в том, что я должен иметь возможность создавать окна и кнопки из C ++.Поэтому, когда я собираю и запускаю эту программу, она запускается, но затем мгновенно переходит в состояние «не отвечает».В любом случае вот что я получил:
Window.h
#ifndef WINDOW_H
#define WINDOW_H
class Window {
public:
Window();
void createButton();
};
#endif
Window.mm
#include "Window.h"
#include "Button.h"
Window::Window(){
NSWindow *window = [[NSWindow alloc]
initWithContentRect: NSMakeRect(100, 100, 200, 200)
styleMask: NSTitledWindowMask | NSMiniaturizableWindowMask
backing: NSBackingStoreBuffered
defer: NO];
[window setTitle: @"Test window"];
}
void Window::createButton(){
Button *button;
[[this contentView] addSubView: button];
// word this gives warning: no '-addSubView:' method found
// this is probably causing the problem I have
}
Button.h
class Button{
Button();
};
// There will be more methods here eventually
Button.mm
#include "Button.h"
Button::Button(){
NSButton *button = [[NSButton alloc]
initWithFrame: NSMakeRect(14, 100, 120, 40)];
[button setTitle: @"Hello world"];
[button setAction: @selector(invisible)];
[button setBezelStyle: NSRoundedBezelStyle];
[button setButtonType: NSMomentaryLightButton];
[button setBezelStyle: NSTexturedSquareBezelStyle];
}
Main.cpp
#include "Window.h"
#include "Button.h"
int main(int argc, char *argv[]){
Window x;
x.createButton();
}
Итак, есть ли у кого-нибудь идеи, почему это не работает, как я уже говорил, я довольно новичок в Cocoa и Objective-C, все еще учусь: P И да, я пытался это исправить.