3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)
  • Q:

    Bijdrager
    remier

    NSCombobox probleempje

    Hoi,

    Momenteel ben ik bezig met een progje om een foto’s te resizen naar een bepaalde grootte (om zo ook gelijk Objective C beter te leren kennen), deze grootte haalt het programma uit een NSComboBox.

    Nu heb ik een controller klasse gemaakt die erft van NSObject (as usual ;)), en heb ik een outlet gehangen aan die combobox genaamt “outputSize” en een action genaamd “setOutputSize:”

    Dit zijn mijn 2 c bestanden: (alleen het combobox deel)

    Controller.h:
    [code:1:73d2289d15]
    @interface Controller : NSObject
    {
    IBOutlet id lblProces;
    IBOutlet id outputSize;
    }
    [/code:1:73d2289d15]

    Controller.m:
    [code:1:73d2289d15]
    – (IBAction)setOutputSize:(id)sender
    {
    int selectedIndex;

    selectedIndex = [outputSize indexOfSelectedItem];
    NSLog(@"setOutputSize: %d", selectedIndex);
    }
    [/code:1:73d2289d15]

    In de combobox staan de waardes “640×480” en “600×400”, gewoon even als test…

    Zoals je ziet roep ik de action setOutputSize: aan, waarin ik de methode (int) indexOfSelectedItem aanroep,
    deze zou (lijkt me) 0 moeten teruggeven bij “640×480” en 1 bij “600×400”

    Maar ik krijg telkens 0 terug:roll: :

    [code:1:73d2289d15]
    2004-03-30 22:51:53.972 SPGMresize[655] Initialising…
    2004-03-30 22:51:54.075 SPGMresize[655] setOutputSize: 0
    2004-03-30 22:51:56.475 SPGMresize[655] setOutputSize: 0
    2004-03-30 22:51:58.070 SPGMresize[655] setOutputSize: 0
    2004-03-30 22:51:59.523 SPGMresize[655] setOutputSize: 0
    [/code:1:73d2289d15]

    Ik heb in de interfacebuilder netjes de connections en outlets gelegd naar de controller…

    Wie weet wat ik hier mis of over het hoofd zie, want ik ben nog niet zo bedreven in Cocoa 8)


    Bijdrager
    HAL-9000

    Ziet er goed uit, alleen heb je een naamsconflict gecreeerd door de outlet “outputSize” te noemen en de action “setOutputSize”. De “set” prefix wordt standaard gebruikt voor accessors waardoor de zaak nu fout gaat. Als je gaat debuggen zie je waarschijnlijk dat outputSize niet meer naar de combobox wijst. Verander de naam van de action bijv. in “setSize” of wijzig de naam van de outlet. Daarna werkt het vast (bij mij in elk geval wel). Succes!


    Bijdrager
    remier

    Thanx dude, you rock!

    Ik heb outputSize gerenamed naar cmbOutputSize en nu werkt het 8)

    [code:1:666b67e995]
    2004-03-31 09:24:27.377 SPGMresize[903] Initialising…
    2004-03-31 09:24:29.861 SPGMresize[903] setOutputSize: 0
    2004-03-31 09:24:31.757 SPGMresize[903] setOutputSize: 1
    [/code:1:666b67e995]

    Voortaan voor alles maar een andere naam kiezen :D

3 berichten aan het bekijken - 1 tot 3 (van in totaal 3)

Je moet ingelogd zijn om een reactie op dit onderwerp te kunnen geven.