2009-12-16 6 views
1

Est-ce que quelqu'un qui a de l'expérience avec SFAuthorizationPluginView sait comment identifier l'utilisateur en appuyant sur "Cancel" et "Back". Mon problème est que SFButtonTypeCancel est identique à SFButtonTypeBack, d'où une déclaration commutateur échouera au moment de la compilation, et une instruction if ne reconnaîtra pas la différence. Cela ne pose aucun problème lorsque vous affichez l'écran de connexion en tant que "nom et mot de passe", mais lorsque vous affichez "Liste des utilisateurs", le "Retour" en tant que "Annuler" fait redémarrer la fenêtre de connexion au lieu de la liste.SFAuthorizationPluginView identifiant le bouton "BACK"

Cordialement Alan

Répondre

0

Pour répondre à ma propre question, la fenêtre de connexion a un bouton ANNULER lors de la commutation rapide utilisateur, et un bouton BACK lorsque l'écran de connexion, donc j'ai réussi à identifier entre les deux boutons, par le code suivant:

CFStringRef str_console_uname; 
    uid_t  uid; 
    gid_t  gid; 

    // get console username 
    str_console_uname = SCDynamicStoreCopyConsoleUser(NULL, 
                 &uid, 
                 &gid); 
    if (!str_console_uname || 
     [(NSString *)str_console_uname compare:@"loginwindow"] == 0) 
    { 
     /* BACK BUTTON */ 
    } 
    else 
    { 
     /* CANCEL BUTTON */ 
    } 
Questions connexes