Hi, ich habe eine Subklasse von NSTextView erstellt (-->ERTextView).
h.
Alles anzeigen
m.
Alles anzeigen
Dies ist mein erster Versuch ein eigenes Delegate zu erstellen. Wenn ich also mit der Maus über ein erstelltes ERTextField fahre, soll in meiner ViewController.m-Datei die Methode: "- (void) setIsHighlightedBool: (BOOL) jaNein" aufgerufen werden. Dies funktioniert nicht! Warum wird die Methode nicht aufgerufen?
Hier ist ein kleiner Ausschnit aus der ViewController.h-Datei:
Im Terminal wird "MouseEntered" oder "MouseExited" ausgegeben. Aber danach passiert nichts mehr.
h.
Quellcode
m.
Brainfuck-Quellcode
- #import "ERTextView.h"
- @implementation ERTextView
- @synthesize delegate;
- //----------------------------------------------------------------------------------- (id) initWithFrame: (NSRect) frameRect
- - (id) initWithFrame:(NSRect)frameRect
- {
- if (self=[super initWithFrame:frameRect])
- {
- [[self window] setAcceptsMouseMovedEvents:YES];
- }
- return self;
- }
- //----------------------------------------------------------------------------------- (void) viewDidMoveToWindow
- - (void) viewDidMoveToWindow
- {
- int options= NSTrackingMouseEnteredAndExited | NSTrackingActiveAlways | NSTrackingInVisibleRect;
- NSTrackingArea *ta = [[NSTrackingArea alloc] initWithRect: NSZeroRect options: options owner: self userInfo: nil];
- [self addTrackingArea: ta];
- [ta release];
- }
- //----------------------------------------------------------------------------------- (void) mouseEntered: (NSEvent*) theEvent
- - (void) mouseEntered: (NSEvent*) theEvent
- {
- //[viewRect setIsHighlighted:YES];
- NSLog(@"MouseEntered");
- [self.delegate setIsHighlightedBool:YES];
- }
- //----------------------------------------------------------------------------------- (void) mouseExited: (NSEvent*) theEvent
- - (void) mouseExited: (NSEvent*) theEvent
- {
- NSLog(@"MouseExited");
- [self.delegate setIsHighlightedBool:NO];
- }
- @end
Dies ist mein erster Versuch ein eigenes Delegate zu erstellen. Wenn ich also mit der Maus über ein erstelltes ERTextField fahre, soll in meiner ViewController.m-Datei die Methode: "- (void) setIsHighlightedBool: (BOOL) jaNein" aufgerufen werden. Dies funktioniert nicht! Warum wird die Methode nicht aufgerufen?
Hier ist ein kleiner Ausschnit aus der ViewController.h-Datei:
Im Terminal wird "MouseEntered" oder "MouseExited" ausgegeben. Aber danach passiert nichts mehr.