Ik ben wat aan het experimenteren met Cocoa/Objective-C en ik lees overal dat je connecties kunt maken in de Interface Builder met ctrl-slepen van het ene object naar het andere. Ik heb een knop en die wil ik op die manier verbinden met een instance van een zelfgemaakte subclass van NSObject. Daarin heb ik een action gedefinieerd die ik wil laten uitvoeren als er op de button wordt gedrukt. Bij het slepen zou er een blauwe of grijze verbindingslijn moeten komen, maar die is er niet. Er gebeurt gewoon niets als ik sleep. Redelijk frustrerend. Ik heb er al lang naar gezocht op internet maar kon niets vinden. Hoe los ik dit op? Sorry dat ik hier zo'n beginnersvraag stel. ;)
Lees een boek! ;) hier staat er eentje: [url=http://www.cocoalab.com/developer.htm]gratis n00b book[/url].
Maar goed, als je een window met bijvoorbeeld een knop hebt gemaakt heb je ook een venstertje met daarin verschillende objecten e.d. (window, firstresponder, dat soort werk) Je kan nu van je knop ctrl-slepen naar dingen in dat kleine venstertje en omgekeerd. Dus niet tussen knoppen onderling. Als je iets wilt tonen na een druk op de knop heb je dus een outlet naar een object waarin een waarde wordt veranderd (display wordt dan yes ofzo), met weer een outlet naar een veld waar een plaatje te vertonen is.
Het is niet erg simpel, maar als je het boek of de tutorial even leest heb je het zo door.
Zorg er voor dat je in de ‘Instances’ tab in IB zit, niet in de ‘Classes’. Je maakt de verbindingen door eerst de Ctrl button in te drukken, en dan te slepen tussen de button in je window en bijvoorbeeld de blauwe kubus die een instantie is van jouw NSObject subclass.
Bedankt voor de reacties, maar kennelijk heb ik het niet helemaal duidelijk genoeg uitgelegd, want het goede zat er nog niet tussen. Ik ben een boek aan het lezen waarin de volgende actie beschreven wordt:
Als ik dit nadoe (met ctrl-sleep) dan verschijnt er géén lijn van Reset naar MAFoo (zoals dat op het bovenstaande plaatje uit het boek wél het geval is).
:) dat is idd wel in IB. De knop wordt wel donkergrijs als ik begin met ctrl-slepen, zoals op het plaatje, maar er verschijnt geen lijn. Ik zal misschien een of andere instelling in het Xcode-project verkeerd hebben of zo... maar ik zou het echt niet weten...
Dat je een lijn sleept is niet genoeg, je moet hem in het Inspector panel - Connections ook nog aan een Action bevestigen ;) dan krijg je een lijntje ;)
Er zal vast iets heel stoms aan de hand zijn, als ik het weet post ik het hier wel. Ik ga sowieso eerst de nieuwste versie van Xcode eens downloaden, kijken of het dan wel goed gaat. Nu heb ik 2.1 en ik geloof dat er al een 2.2 is. Misschien is dan het hele probleem wel opgelost.
Xcode 2.2.1 is de laatste. Kijk ook even in de IB preferences of er iets staat over het maken van verbindingen en het laten zien van lijntjes.
edit:
De opmerking van Reflex zou ik toch ook even nakijken. Wanneer er geen action is gedefinieerd, dan kan het best eens zijn dat er ook geen lijntje wordt getekend. Je kunt via het menu een action of outlet aan een object toekennen. Het inspector menu kun je ook in het menu vinden ("Show Info” oid). Ik zit nu niet achter een Mac, dus kan het niet testen.
edit2:
In de preferences van IB onder ‘Editing’ staat een optie ‘Lock All Connections’. Wanneeer ik die aanvink, kan ik inderdaad geen lijnen meer trekken.