1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Warum bekomme ich keine Notifications?

Dieses Thema im Forum "OS X-Developer" wurde erstellt von zottel, 17.08.08.

  1. zottel

    zottel James Grieve

    Dabei seit:
    11.07.08
    Beiträge:
    133
    Hallo,

    ich bastle gerade ein bisschen mit Notifications herum und verstehe nicht, warum folgendes nicht funktioniert:

    Code:
    	tazPDF = [[PDFDocument alloc] initWithData:[NSData dataWithContentsOfFile:@"/Users/zottel/Documents/taz/2007_09_13.pdf"]];
    [...]
    	[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFind:) name:@"PDFDocumentDidBeginFindNotification" object:nil];
    [...]
    - (IBAction)findString:(id)sender {
    	[textfeld setStringValue:@"jetzt wird gesucht"];
    	[tazPDF beginFindString:[suchfeld stringValue] withOptions:NSCaseInsensitiveSearch];
    }
    
    - (void)startFind:(NSNotification *)notification {
    	[textfeld setStringValue:@"Suche gestartet"];
    }
    
    Die ersten zwei Zeilen sind Teil einer Methode der gleichen Klasse und werden vor findString: aufgerufen. Wenn findString: aufgerufen wird, sehe ich die entsprechende Veränderung in textfeld. startFind: wird jedoch nie aufgerufen – textfeld wird nicht entsprechend verändert, und auch ein Breakpoint in der entsprechenden Zeile wird nie ausgelöst. Dabei müsste begindFindString doch eine PDFDocumentDidBeginFindNotification auslösen! Selbes Problem mit PDFDocumentDidFindMatchNotification, die ich eigentlich brauche.

    Was mache ich falsch?

    Danke,

    Christian
     
  2. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Du initialisierst Dein PDFDocument falsch. Eine PDF-Datei ist kein gespeichertes NSData Objekt. Wenn Du ein PDFDocument mit einer PDF-Datei initialisieren willst, musst Du das mit initWithURL: machen.

    MacApple
     
  3. zottel

    zottel James Grieve

    Dabei seit:
    11.07.08
    Beiträge:
    133
    Bist Du sicher? Ich kann das Ergebnis dieser Initialisierung aber problemlos einer PDFView zuordnen? Naja, ich werds mal ausprobieren, danke.
     
  4. zottel

    zottel James Grieve

    Dabei seit:
    11.07.08
    Beiträge:
    133
    Habe die entsprechende Zeile geändert zu

    Code:
    	tazPDF = [[PDFDocument alloc] initWithURL:[NSURL fileURLWithPath:@"/Users/zottel/Documents/taz/2007_09_13.pdf"]];
    
    Das Ergebnis bleibt leider das gleiche. o_O
     
  5. zottel

    zottel James Grieve

    Dabei seit:
    11.07.08
    Beiträge:
    133
    Nochwas: Habe es eben mal mit findString: statt beginFindString: versucht, um sicherzugehen, dass das Suchen auch funktioniert, und das tut es. findString: geht, aber mit beginFindString: bekomme ich keine Notifications. ?-(
     
  6. MacApple

    MacApple Lord Grosvenor

    Dabei seit:
    05.01.04
    Beiträge:
    3.470
    Ok, das hier habe ich noch übersehen:
    Code:
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFind:) name:@"PDFDocumentDidBeginFindNotification" object:nil];
    Den Parameter name: übergibst Du falsch. So ist es richtig:
    Code:
    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(startFind:) name:PDFDocumentDidBeginFindNotification object:nil];
    MacApple
     
  7. zottel

    zottel James Grieve

    Dabei seit:
    11.07.08
    Beiträge:
    133
    Jaaaa, so funktioniert's. :) Vielen Dank!
     

Diese Seite empfehlen