NSTask를 사용하여 외부 응용 프로그램을 시작합니다. 그러나이 시점에서 내 앱은 포커스를 잃어 버린다. 나는 이것을 원하지 않는다. 다른 응용 프로그램은 파일에 몇 가지 정보를 기록하고 내 응용 프로그램은 해당 정보를 읽고 표시합니다. 백그라운드에서 NSTask 앱을 시작할 수 있습니까?NSTask 응용 프로그램이 포커스를 잃습니다
답변
당신이 open
명령 (manpage)를 사용하여 응용 프로그램을 시작하면, 당신은 전경에 응용 프로그램을 가져 피하기 위해 -g
옵션을 사용하여 시도 할 수 :
-g Do not bring the application to the foreground.
그래서보다는 NSTask
이 응용 프로그램을 직접 시작하고; open
을 사용하여 실수로 엽니 다.
헤드리스해야한다 것처럼 보인다 외부 응용 프로그램이 두 번째 창을 열고이 시점에서 때문에, 데몬 프로세스를 작성할 수 – Lupurus
@Lupurus 그래서'open -g'를 사용하여 초기 외부 응용 프로그램 창은 백그라운드에 있지만 나중에는 포커스를받는 새 창을 엽니 다. – trojanfoe
흠 정확히 어디서 문제가 발생했는지 모르겠다. 더 나은 설명 일 수도 있습니다. 외부 앱은 내가 Wineskin으로 만든 앱입니다. XQuartz를 사용하여 창을 표시합니다. 이 방법으로 시작하는 .exe는 도크에서 최소화 된 최소화 된 창을 만듭니다. 터미널에서 open -g ...를 호출하려고했지만 새로운 터미널 창을 열었습니다. wineskin 앱과 터미널이 포커스를 잃어 버렸습니다. – Lupurus
NSTask를 사용하는 대신 NSWorkspace의 launchApplicationAtURL:options:configuration:error:
을 사용하는 것이 좋습니다. NSWorkspaceLaunchWithoutAddingToRecents | NSWorkspaceLaunchWithoutActivation | NSWorkspaceLaunchAndHide
을 options:
인수로 전달하면 효과적으로 보이지 않아야합니다. (나는 분명히 당신의 특별한 경우에 그것을 시도하지 않았다. 그러나 그것이 작동하도록 의도 된 것이다.)
감사합니다.하지만, 제 경우에는 작동하지 않습니다. ( – Lupurus
NSTask를 시작한 후에 "performSelector : withObject : afterDelay"를 호출하지 않는 이유는 무엇입니까? 이것을 사용하면 적절한 지연 후에 응용 프로그램을 다시 활성화하는 선택기를 호출 할 수 있습니다. 여기에 멋진 기능이 전혀 필요하지 않습니다. 다른 앱을 앞에 놓고 그 후에 앱을 다시 활성화하십시오.
이렇게하면됩니다. 필요한 것을 지연시키기 만하면됩니다.
이 다른 프로그램이 흠, 내 경우에는,이 작동하지 않습니다고마워. 전에 비슷한 해결책을 가졌지 만 이것은별로 유용하지 않습니다. 다른 실행중인 앱 (Safari, Mail 등)으로 전환하면, ,이 코드는 또한 내 애플 리케이션을 활성화합니다 ... – Lupurus
- 1. Delphi 응용 프로그램이 포커스를 잃습니다
- 2. UISearchBar가 포커스를 잃습니다
- 3. 선택 메뉴가 포커스를 잃습니다
- 4. 메인 페이지에서 포커스를 잃습니다.
- 5. KeyboardShrinksView가 포커스를 잃습니다
- 6. 갤러리가 포커스를 잃습니다
- 7. EditText가 포커스를 잃습니다.
- 8. 포커스를 사용할 때 입력이 포커스를 잃습니다 (function() {})
- 9. WPF DataGrid가 ContextMenu에 포커스를 잃습니다
- 10. .net : 응용 프로그램이 서버의 IE8에서 스타일을 잃습니다.
- 11. WPF 응용 프로그램이 터치 기능을 잃습니다.
- 12. asp.net 응용 프로그램이 ipad에서 메뉴를 잃습니다
- 13. MessageBox가 최대 MDI 형식의 포커스를 잃습니다.
- 14. 코코아 응용 프로그램 - NSTask
- 15. C# 콘솔 응용 프로그램이 포커스를 잃었습니다.
- 16. 응용 프로그램이 포커스를 잃을 때 양식 닫기
- 17. 다른 응용 프로그램이 VB.net에서 포커스를 잃지 않도록하십시오.
- 18. CrossUI.Droid.Dialog EntryElement가 텍스트 예측으로 포커스를 잃습니다.
- 19. MessageBox가 표시된 후 자식 창이 포커스를 잃습니다.
- 20. 필드를 클릭 한 후 IE에서 포커스를 잃습니다.
- 21. Flash Sprite가 MOUSE_DOWN 이벤트에 포커스를 잃습니다.
- 22. 클릭 이벤트 후 TreeView가 포커스를 잃습니다.
- 23. 우분투는 때때로 텍스트 편집기 포커스를 잃습니다.
- 24. 끌기 가능한 각도 UI 모달이 포커스를 잃습니다
- 25. Swf가 키보드 포커스를 플래시 CS3에서 잃습니다.
- 26. tcl/tk 위젯 콤보 박스가 포커스를 잃습니다
- 27. Android Edittext는 키패드에서 입력하는 동안 포커스를 잃습니다
- 28. 텍스트 상자에서 발생하는 이벤트가 포커스를 잃습니다.
- 29. SlidingDrawer의 ListView가 onResume 이후 포커스를 잃습니다
- 30. NSTask