2012-09-17 3 views
1

좋아요,이 제목은 이상하게 보일 수 있지만 나와 함께 있습니다. 로그인 할 때 사용자가 실행하도록 설정할 수있는 앱이 있습니다. 즉, 사용자가 Dock/Finder 등을 클릭하여 앱을 실행하는 경우가있을 수 있다고 예상 할 수 있지만 다른 경우에는 로그인 할 때 시스템에서 앱을 자동으로 실행합니다.사용자가 앱을 시작했는지 알 수 있습니다.

사용자가 응용 프로그램을 시작할 때 창을 표시하고 싶지만 자동으로 시작할 때 창을 표시하고 싶습니다 (사용자의 고통이라고 생각합니다). 어떻게해야합니까?

답변

1

앱 실행을 자동화하는 방법에 달려 있지만 명령 행 인수를 사용하여 시스템 실행과 사용자 실행을 구별 할 수 있습니다.

그래서, 명령 줄 실행은 다음과 같은 수 있습니다

MyApp -autoLaunch "Y" 

는 코코아 응용 프로그램에 명령 줄 인수를 구문 분석하려면 NSUserDefaults을 사용할 수 있습니다 (예 you can를!) :

if(![[NSUserDefaults standardUserDefaults] objectForKey:@"autoLaunch"] isEqualToString:"Y"]) { 
    // do something for user initiated launch 
} 
+0

[[[NSWorkspace sharedWorkspace] launchApplication : @ "MyApp"showIcon : NO autolaunch : YES]'사용 방법은 어떻습니까? 내가 알기로는 특정 사용자 기본값 키를 YES로 설정합니다. 문제는 그 키의 이름이 무엇인지에 관한 문서를 찾을 수 없다는 것입니다. 아마 @ "autolaunch"? 오, 그리고 어떤 아이디어가 '쇼 아이 콘 : what'입니까? – Alex

+0

@nsBum : 답변 해 주셔서 감사합니다.하지만이 "Y"매개 변수를 어떻게 추가합니까? 필자의 경우 LSSharedFileListRef를 사용하여 http://stackoverflow.com/questions/815063/how-do-you-make-your-app-open-at-login에 설명 된대로 세션 로그인시 응용 프로그램을 시작합니다. 이 "Y"매개 변수를 설정하고 가져 오는 방법은 무엇입니까? –

+0

확실하지 않습니다. 'LSSharedFileListInsertItemURL'에는 이것에 대한 매개 변수가없는 것 같습니다. 그것은'CFDictionaryRef inPropertiesToSet'을 취하지 만 그 헤더 파일에는 그 param에 관한 것이별로 없습니다. – FluffulousChimp

0

질문에 대한 정확한 답변이 없습니다. 그러나 사용자가 앱을 마지막으로 종료 할 때 창을 볼 수 있다면 앱에서 창을 표시해야한다고 제안 할 수 있습니까?

이것은 Mac UI 가이드 라인의 앱 및 창 복원 제안과 더 유사 할 수 있으며 사용자의 기대 수준입니다.

또한 로그인 할 때 앱을 실행하도록 설정 한 사용자는 다음에 창을 닫거나 복원하지 않거나 시스템이 로그인 중에 앱을 숨기도록 이해합니다.

+0

'정상적인'창을 가진 응용 프로그램에 당신이 제안하는 것은 의미가 있지만 표시하고자하는 창은 NSStatusItem에 '첨부 된'메뉴 막대를 기반으로하므로 '정상'범주에 속하지 않습니다. 사용자가 의도적으로 앱을 열면, 이제는 그 앱으로 뭔가를하고 싶어하기 때문에 사용자가 앱을 열 때 해당 창을 자동으로 표시하는 것이 좋습니다. 창을 표시하면 자동으로 사용자 작업의 바로 가기가됩니다. 그러나 앱이 자동 실행되면 적용되지 않으며 사용자가 로그인 할 때마다 창을 닫아야하는 고통이 따릅니다. – Alex

관련 문제