Odpowiedz na ten temat
Strona 1 z 2 1 2 OstatniaOstatnia
Pokaż wyniki od 1 do 10 z 11
  1. Avatar macQUB
    Dołączył
    Aug 2006
    Skąd
    Podkarpacie
    Postów
    251

    Cytuj | #1

    Próbuję przy pomocy tego języka stworzyć proste okno, bez niczego tylko żeby się pokazało. Korzystam do tego celu z klasy NSWindow, ale mam problem ponieważ wyrzuca mi błąd.
    Mój kod to:
    Kod:
    NSWindow *myWindow;
    	NSRect rect = NSMakeRect (100, 100, 200, 200);
    	unsigned int styleMask = NSTitledWindowMask | NSMiniaturizableWindowMask;
    ////////// poniższa linijka wywołuje błąd//////////////////
    myWindow =[ [NSWindow alloc] initWithContentRect: rect styleMask: styleMask backing: NSBackingStoreBuffered
    									   defer: NO];
    Błąd to
    Undefined symbols:
    "_OBJC_CLASS_$_NSWindow", referenced from:
    objc-class-ref-to-NSWindow in Tutorial.o
    ld: symbol(s) not found
    collect2: ld returned 1 exit status
    Nie wiem o co chodzi bardzo bym prosił o klarowne wyjaśnienie potrafię tworzyć takie okienka korzystając z języka Javy lub C#. Czy w tym przypadku okno tworzy się podobnie?
    Komputer: MacBook alu 13,3' 2,4 GHz
    Telefon: iPhone 4s


  2. Avatar Roberto
    Dołączył
    Feb 2007
    Skąd
    Wrocław
    Postów
    11,866

    Cytuj | #2

    dodałeś AppKit.framework do projektu?

    poza tym - który template wybrałeś 'na start' z okienkami?
    Ostatnio edytowane przez Roberto ; 19.03.2011 o 22:46
    Komputer: MacBook Pro 13,3" 2,26GHz (Lion 10.7.3)
    Telefon: iPhone 4S
    Tablet: iPad 2 3G
    dlaczego nie korzystasz z opcji szukaj?
    http://ifiboughtyourappalreadycaniup...acappstore.com

  3. Avatar macQUB
    Dołączył
    Aug 2006
    Skąd
    Podkarpacie
    Postów
    251

    Cytuj | #3

    Próbuję od podstaw zbudować aplikacje okienkową (ze startu wybieram aplikacje konsolową), nie dodałem tego framework'u ale już to poprawiłem, jednak teraz nie uruchamia się (działa ale nic się nie dzieje muszę "brutalnie" wyłączać aplikacje)
    Wyciąg z konsoli
    Sun Mar 20 12:43:25 user-46-113-138-97.play-internet.pl Tutorial[664] : kCGErrorInvalidConnection: CGSGetCurrentCursorLocation: Invalid connection
    Sun Mar 20 12:43:25 user-46-113-138-97.play-internet.pl Tutorial[664] : kCGErrorFailure: Set a breakpoint @ CGErrorBreakpoint() to catch errors as they are logged.
    Sun Mar 20 12:43:25 user-46-113-138-97.play-internet.pl Tutorial[664] : kCGErrorInvalidConnection: CGSGetCurrentCursorLocation: Invalid connection
    Sun Mar 20 12:43:25 user-46-113-138-97.play-internet.pl Tutorial[664] : kCGErrorInvalidConnection: CGSNewWindowWithOpaqueShape: Invalid connection
    2011-03-20 12:43:25.746 Tutorial[664:a0f] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Error (1002) creating CGSWindow'
    *** Call stack at first throw:
    (
    0 CoreFoundation 0x00007fff8807f7b4 __exceptionPreprocess + 180
    1 libobjc.A.dylib 0x00007fff818b10f3 objc_exception_throw + 45
    2 CoreFoundation 0x00007fff8807f5d7 +[NSException raise:format:arguments:] + 103
    3 CoreFoundation 0x00007fff8807f564 +[NSException raise:format:] + 148
    4 AppKit 0x00007fff80514ee2 _NSCreateWindowWithOpaqueShape2 + 473
    5 AppKit 0x00007fff804a9489 -[NSWindow _commonAwake] + 1214
    6 AppKit 0x00007fff804a616e -[NSWindow _commonInitFrame:styleMask:backing:defer:] + 1501
    7 AppKit 0x00007fff804a4dfa -[NSWindow _initContent:styleMask:backing:defer:contentView:] + 1396
    8 AppKit 0x00007fff804a4883 -[NSWindow initWithContentRect:styleMask:backing:defer:] + 42
    9 Tutorial 0x0000000100001910 main + 504
    10 Tutorial 0x0000000100001710 start + 52
    11 ??? 0x0000000000000001 0x0 + 1
    )
    terminate called after throwing an instance of 'NSException'
    Komputer: MacBook alu 13,3' 2,4 GHz
    Telefon: iPhone 4s

  4. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    Cytuj | #4

    Nie wiem dlaczego wybrałeś konsole application skoro chcesz tworzyć z GUI, ale nieważne.

    Tutaj masz przykład jak z palca (w kodzie) zrobić okienko. Bez nibów.

    Kod:
    #import <Cocoa/Cocoa.h>
    #import "myView.h"
    
    int main(int argc, const char *argv[])
    {
        NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
        NSWindow *window;
        myView *view;
        view = [[myView alloc] initWithFrame:NSMakeRect(0,100,200,200) ];
        window = [[NSWindow alloc] initWithContentRect:NSMakeRect(50,100,200,300) 
    					 styleMask:NSTitledWindowMask | NSResizableWindowMask
    					   backing:NSBackingStoreBuffered
    					     defer:TRUE];
        
        NSTextField *text=[[NSTextField alloc]initWithFrame:NSMakeRect(10,60,180,22) ];
        [text setStringValue:@"sample text"];
        
        NSButton *button=[[NSButton alloc]initWithFrame:NSMakeRect(10,10,180,32) ];
        [button setBezelStyle:NSRoundedBezelStyle];
        [button setTitle:@"Quit"];
        [button setTarget:NSApp];
        [button setAction:@selector(terminate:)];
        
        
        [window setTitle:@"test1"];
       
        [[window contentView] addSubview:view];
        [[window contentView] addSubview:text];
        [[window contentView] addSubview:button];
        
        [NSApplication sharedApplication];
        [window makeKeyAndOrderFront: nil];
        [pool release];
        
        [NSApp run];
        return 0;
    }
    i myView.m

    Kod:
    #import "myView.h"
    
    @implementation myView
    
    - (void)drawRect:(NSRect)rect
    {
        NSBezierPath *path = [NSBezierPath bezierPathWithRect:NSMakeRect(10,10,180,180)];
        [[NSColor greenColor] set];
        [path fill];
    
    }
    @end
    i myView.h

    Kod:
    #import 
    
    @interface myView : NSView
    {
    }
    @end
    kompilacja z palca:
    Kod:
    cc -framework Cocoa myView.m main.m -o ./test.app/Contents/MacOS/test
    Tutaj jakbyś chciał kody:
    http://cl.ly/2e1W1O1w3X240F2d3G2b
    Ostatnio edytowane przez macieks72 ; 20.03.2011 o 13:31
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

  5. Avatar macQUB
    Dołączył
    Aug 2006
    Skąd
    Podkarpacie
    Postów
    251

    Cytuj | #5

    Cytat Napisał macieks72 Zobacz post
    Nie wiem dlaczego wybrałeś konsole application skoro chcesz tworzyć z GUI, ale nieważne.
    Tutaj masz przykład jak z palca (w kodzie) zrobić okienko. Bez nibów.
    Jak pisałem wcześniej potrafię przy pomocy konsolowej aplikacji w Javie czy C# stworzyć okienkową, chciałem sprawdzić na czym polega podobne tworzenie aplikacji okienkowej w Objective-c, jeśli nie konsolową to jaką w której nie będę musiał korzystać z Interface Bulider'a

    Skopiowałem Twój kod do mojego ale nie wychodzi do końca tzn.
    myView *view;
    view = [[myView alloc] initWithFrame:NSMakeRect(0,100,200,200) ];
    w tej linijce po wyjściu z metody initWithFrame:NSMakeRect(0,100,200,200) program się zawiesza i znowu muszę go wyłączać brutalnie (terminate) do aplikacji dodałem frameworki:
    -AppKit
    -Cocoa
    -CocoaData
    -Fundation
    Komputer: MacBook alu 13,3' 2,4 GHz
    Telefon: iPhone 4s

  6. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    Cytuj | #6

    No ja Ci nie pomogę bo nie bardzo się znam na obj-c, od czasu do czasu się nim tylko bawię jak mam akurat ochotę na obj-c. Ściągnij cały kod który dałem w linku i zobacz, ale w zasadzie dokładnie to samo wkleiłem tutaj. Tamto się na pewno kompiluje i działa. Ja to kompilowałem z palca, ale widzę że tylko "Cocoa framework" jest dodany do opcji kompilatora "-framework Cocoa". I to działa na 100% co wyżej podałem. Pokombinuj
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

  7. Avatar Roberto
    Dołączył
    Feb 2007
    Skąd
    Wrocław
    Postów
    11,866

    Cytuj | #7

    macieks72 - forum wcięło ci pierwszego importa ;]
    Komputer: MacBook Pro 13,3" 2,26GHz (Lion 10.7.3)
    Telefon: iPhone 4S
    Tablet: iPad 2 3G
    dlaczego nie korzystasz z opcji szukaj?
    http://ifiboughtyourappalreadycaniup...acappstore.com

  8. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    Cytuj | #8

    No tak, nie zauważyłem, był jako tag html potraktowany pewnie. Poprawiłem już.

    W każdym razie macQUB weź sobie zipa z kodem z linku.
    Ostatnio edytowane przez macieks72 ; 20.03.2011 o 13:31
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

  9. Avatar macQUB
    Dołączył
    Aug 2006
    Skąd
    Podkarpacie
    Postów
    251

    Cytuj | #9

    Cytat Napisał macieks72 Zobacz post
    W każdym razie macQUB weź sobie zipa z kodem z linku.
    Dzięki jednak musiałem małą poprawkę zrobić w tym kodzie a mianowicie
    [NSApplication sharedApplication];
    musi być zaraz po
    NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
    bo inaczej wyrzuca błędy związane z linkowaniem, ale powstał inny problem aplikacja za szybko się zamyka tylko miga jak ją zatrzymać?
    Komputer: MacBook alu 13,3' 2,4 GHz
    Telefon: iPhone 4s

  10. Avatar macieks72

    Dołączył
    Aug 2009
    Postów
    9,327

    U mnie nie miga, a normalnie się uruchamia okno.
    Komputer: Macbook Pro wykąpany w pepsi, teraz Acer Aspire 5750G
    Telefon: iPhone 4 - iOS 5.1.1
    Ludzie, używajcie alta. No chyba że wam obojętne, czy robicie komuś 'łaskę', czy 'laske'.

Odpowiedz na ten temat
Strona 1 z 2 1 2 OstatniaOstatnia