Question

Si je OPTION + RIGHT CLICK sur l'icône du Finder, je reçois une option " Relancer " dans le menu contextuel. Je voudrais relancer programme Finder, si possible. Je suis sûr qu'il ya une meilleure façon de le faire que de simplement le tuer et laissez-le redémarrer. Supposons que je l'autorisation appropriée / autorisations pour le faire déjà.

De plus, je voudrais redémarrer Spotlight ainsi.

Était-ce utile?

La solution

Envoyer un événement quit en utilisant AppleScript, puis l'envoyer un événement activate:

//tell Finder to quit
NSAppleScript *restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to quit"];
[restartFinder executeAndReturnError:nil];

EDIT: ajouter un délai pour vous assurer que le Finder est prêt à recevoir un événement activate. Sur ma machine, parfois, il a besoin de ce retard, parfois, il ne fait pas:

//delay 1 second
restartFinder = [[NSAppleScript alloc] initWithSource:@"delay 1"];
[restartFinder executeAndReturnError:nil];

(... end EDIT)

//tell Finder to activate
restartFinder = [[NSAppleScript alloc] initWithSource:@"tell application \"Finder\" to activate"];
[restartFinder executeAndReturnError:nil];

Autres conseils

Finder est maintenu en vie par le système, de sorte que vous pouvez simplement le tuer et il relancera automatiquement. J'utilise killall Finder pour y parvenir.

'Relance' presque certainement envoie juste un signal kill au Finder.

Tuer Finder avec killall Finder fonctionne depuis le système relancera automatiquement.

[[NSTask launchedTaskWithLaunchPath:@"/usr/bin/killall" 
    arguments:[NSArray arrayWithObjects:@"Finder", nil]] waitUntilExit];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top