IPB     Il futuro di Tevac dipende da te!  

Benvenuto Visitatore ( Log In | Registrati )

  · · · · · · · · · · · ·
Reply to this topicStart new topic
> Aiuto con textDidChange: e NSTextField
Alba
messaggio 28 Mar 2008, 12:36
Messaggio #1


Level 1/11
*

Gruppo: Forum User
Messaggi: 3
Iscritto il: 28-March 08
Utente Nr.: 10.043



Ciao a tutti. Sono nuova, del forum e di Obj-C/Cocoa.

Sto cercando di comprendere dal nulla il modo in cui funziona questo nuovo mondo.... e quindi....

Ho un NSTextField, un NSButton e vorrei solo riuscire ad intercettare l'evento textDidChange: generato da NSTextField per attivare il NSButton solo se il suddetto campo di testo non è vuoto. Mi serve solo per capire come fare l'handling degli eventi ma non ho molto chiaro il concetto. Ho letto con attenzione la risposta del mitico Germinara ad un utente con un problema simile (http://forum.tevac.com/cocoa-delegati-nstextfield-t57128.html) ma vorrei solo capire come fare l'handling degli eventi degli oggetti.

posto il codice del controller:

CODE
#import <Cocoa/Cocoa.h>

@interface Controller :NSObject {
IBOutlet id testo;
IBOutlet id button;

}
- (IBAction)bottone:(id)sender;

@end

CODE
#import "Controller.h"

@implementation Controller

-(void)awakeFromNib{
[button setEnabled:NO];
NSLog (@"Il log funziona...");

}

- (IBAction)bottone:(id)sender {
//Il bottone è stato premuto
}

-(IBAction) textDidChange:(NSNotification *)aNotification {
NSLog (@"Catturato evento textDidChange!");
// FAI QUALCOSA BASTARDO !!!
}

@end


Grazie a tutti per il vostro aiuto, e scusate se sono un po tonta!!!

Go to the top of the page
 
+Quote Post
Marco Coïsson
messaggio 28 Mar 2008, 14:34
Messaggio #2


life, n: a whim of several billion cells to be you for a while
***********

Gruppo: Supporter
Messaggi: 9.337
Iscritto il: 18-May 03
Da: Torino
Utente Nr.: 65



Il metodo - (void)textDidChange:(NSNotification *aNotification) non serve per intercettare una modifica avvenuta al testo del NSTextField, ma per informare chi ne fosse interessato che detta modifica è avvenuta. In altre parole, devi già sapere che la modifica è avvenuta, e con questo metodo rendi la cosa di pubblico dominio. Infatti, in genere non sei tu a chiamare questo metodo, ma è direttamente Cocoa. La notifica che questo metodo solleva è NSControlTextDidChangeNotification. Per venirne informata, devi registrarti presso l'NSNotificationCenter, dichiarare il tuo Controller interessato a NSControlTextDidChangeNotification, e dichiarare un metodo opportunamente formattato che viene invocato dal sistema quando questa notifica viene ricevuta.
Il tutto si inquadra nel meccanismo generale delle notifiche, su cui puoi trovare informazioni varie anche su questo forum, ad esempio:


--------------------
Marco Coïsson
http://homepage.mac.com/marco_coisson

L'atomo divisibile: podcast gratuito di divulgazione scientifica.

X come Macintosh
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic

 

Collapse

> 

    Titolo discussione Risposte Autore discussione Visite Ultima azione
No New Posts   4 nicolò 53 18 November 2008 - 18:00
Ultimo messaggio di: nicolò
No New Posts   8 pulce15 100 13 November 2008 - 16:32
Ultimo messaggio di: chebfarid
No New Posts   4 marco71 96 10 November 2008 - 11:08
Ultimo messaggio di: saurospagnol
No New Posts   7 ilredelsilenzio 239 2 October 2008 - 12:01
Ultimo messaggio di: Lullaby71
No New Posts   1 marco71 107 20 September 2008 - 17:39
Ultimo messaggio di: Martini
No new   12 Danilo 273 19 September 2008 - 15:29
Ultimo messaggio di: Il Dahu
No New Posts   7 Giaco__f 202 21 August 2008 - 21:43
Ultimo messaggio di: [Daitarn]
No New Posts   7 danymac 203 2 August 2008 - 12:21
Ultimo messaggio di: danymac
No New Posts   0 nickXXX 144 28 July 2008 - 13:03
Ultimo messaggio di: nickXXX
No New Posts 7 gulla 209 22 July 2008 - 15:13
Ultimo messaggio di: blueknight
No New Posts   6 nickXXX 141 2 July 2008 - 13:43
Ultimo messaggio di: nickXXX
No New Posts   8 MORGANA 137 30 June 2008 - 21:36
Ultimo messaggio di: Biba

Modalità di visualizzazione: Normale · Passa a: Lineare · Passa a: Outline


RSS Versione Lo-Fi Oggi è il: 22 November 2008 - 20:48
IP.Board Skin Developed By Creative Networks