Frage

Der Fehler ich Xcode bekommen, ist zu sagen 3 Dinge sind un-erklärt (siehe Bild unten) alt text http://snapplr.com/snap/ks4h

Aber in der Header-Datei ich sie erklärt habe (siehe Bild unten)

alt text http://snapplr.com/snap/htmb

Warum ich diese Fehler immer bin, wenn ich ihnen erklärt haben.

Der vollständige Code:

Header-Datei.

#import <Foundation/Foundation.h>


@interface HotKeyController : NSObject {
    IBOutlet NSButton *cmdHK;
    IBOutlet NSButton *ctrHK;
    IBOutlet NSButton *optHK;
    IBOutlet NSPopUpButton *keyHK;
    IBOutlet NSWindow *window;
    IBOutlet NSWindow *searchWindow;
    IBOutlet NSWindow *entryWindow;
}

@end

Die Umsetzung Datei

#import "HotKeyController.h"
#include <Carbon/Carbon.h>

@implementation HotKeyController

OSStatus MyHotKeyHandler(EventHandlerCallRef nextHandler,EventRef theEvent,void *userData)
{
    EventHotKeyID hkCom;
    GetEventParameter(theEvent,kEventParamDirectObject,typeEventHotKeyID,NULL,sizeof(hkCom),NULL,&hkCom);
    int l = hkCom.id;

    switch (l) {
        case 1: [window makeKeyAndOrderFront:NSApp];  
            break;
        case 2: [searchWindow makeKeyAndOrderFront:nil];
            break;
        case 3: [entryWindow makeKeyAndOrderFront:nil];
            break;  
    }
    return noErr;
}

- (void)awakeFromNib
{
    //Register the Hotkeys
    EventHotKeyRef gMyHotKeyRef;
    EventHotKeyID gMyHotKeyID;
    EventTypeSpec eventType;
    eventType.eventClass=kEventClassKeyboard;
    eventType.eventKind=kEventHotKeyPressed;


    InstallApplicationEventHandler(&MyHotKeyHandler,1,&eventType,pl,NULL);

    gMyHotKeyID.signature='htk1';
    gMyHotKeyID.id=1;
    if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowMain"]!=-999) {
        RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowMain"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowMainModifier"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef);
    }

    gMyHotKeyID.signature='htk2';
    gMyHotKeyID.id=2;
    if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowSearch"]!=-999) {
        RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowSearch"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowSearchModifier"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef);
    }

    gMyHotKeyID.signature='htk3';
    gMyHotKeyID.id=3;
    if([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowEntry"]!=-999) {
        RegisterEventHotKey([[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowEntry"], [[NSUserDefaults standardUserDefaults] integerForKey:@"hotkeyShowEntryModifiers"], gMyHotKeyID, GetApplicationEventTarget(), 0, &gMyHotKeyRef);
    }

}

@end
War es hilfreich?

Lösung

würden Sie müssen mehr der Datei zeigen, um sicher zu sein. Importieren Sie richtig die Header-Datei? Haben Sie die Header-Datei gespeichert?

Versuchen Sie, die explizite Selbst> Referenzen eingefügt und Sie könnten eine aufschlußreicher Fehlermeldung.

Versuchen Sie auch, eine Vorverarbeitung der Implementierungsdatei (im Build-Menü) und das könnte verraten, warum die Ivar nicht gefunden werden.

Andere Tipps

  

Der Fehler, den ich bekommen ist Xcode sagt 3 Dinge sind un-deklariert ...

     

Aber in der Header-Datei Ich habe sie erklärt ...

     

Warum ich diese Fehler immer bin, wenn ich ihnen erklärt haben [in der HotKeyController Klasse].

Da diese Zeilen in einer Funktion sind, nicht in einem Verfahren der HotKeyController Klasse. Es spielt keine Rolle, wo Sie die Funktion setzen (innen @implementation oder nicht); es ist immer noch eine Funktion, keine Methode.

  

Wie würde ich machen den userData Parameter Punkt meiner HotKeyController?

Sie eingestellt, dass, wenn Sie die Ereignishandler erstellen. In der Tat sind Setzen Sie es bereits auf „pl“, was immer das ist.

NSWindow ist nicht in der Stiftung Rahmen definiert, Sie müssen die richtigen Header, ApplicationKit oder Cocoa importieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top