ティムのチュートリアルで約100回の試行をやり直しました。ついに私はそれを機能させました。私が最初にそれを試したとき、私はそれがうまくいったことを誓いますが。私の状況では、「ログイン時に起動」をオンに切り替えると、ログイン直後にヘルパーアプリが起動したのを1秒間しか見ることができません。それからそれはなくなった。アプリを手動で起動すると、スイッチがオフになっているのがわかりました。
これが私が見つけたものです:
- 私のバンドル識別子はすでにのリストにありました
NSArray *running = [[NSWorkspace sharedWorkspace] runningApplications]
- のステータスは
NSRunningApplication *app (bundle name equal to my app)
:
[app isActive] == NO
、、[app isHidden] == NO
[app isTerminated] = NO
だから私は次のようにコードにいくつかの変更を加えました:
BOOL alreadyRunning = NO;
BOOL isActive = NO; // my modification
NSArray *running = [[NSWorkspace sharedWorkspace] runningApplications];
for (NSRunningApplication *app in running) {
if ([[app bundleIdentifier] isEqualToString:@"com.mybundleidentifier"]) {
alreadyRunning = YES;
isActive = [app isActive]; // my modification
}
}
if (!alreadyRunning || !isActive) { // my modification
....