【问题标题】:-[NSRunningApplication activateWithOptions:] not working-[NSRunningApplication activateWithOptions:] 不工作
【发布时间】:2015-10-28 15:06:27
【问题描述】:

我正在尝试创建一个专注于某个应用程序(如果已启动)的程序。这是我的代码:

#import <Cocoa/Cocoa.h>
#import <stdio.h>

int main() {
  // activate Firefox
  NSArray *apps = [NSRunningApplication runningApplicationsWithBundleIdentifier: @"org.mozilla.firefox"];

  if ([apps count] == 0) {
    printf("no matching app\n");
    return 1;
  }

  if (![apps[0] activateWithOptions: NSApplicationActivateAllWindows]) {
    printf("failed to activate\n");
    return 1;
  }

  return 0;
}

当我运行它时,它会打印“激活失败”,并且 Firefox 没有成为焦点。我做错了什么?

【问题讨论】:

    标签: objective-c macos cocoa nsrunningapplication


    【解决方案1】:

    只需使用 NSApplicationActivateIgnoringOtherApps 修饰符即可激活。没问题。

    另外 activateWithOptions: 方法有以下注意事项:

    如果应用程序已退出,此方法将返回 NO,或者 不是 可以激活的应用程序类型

    【讨论】:

    • 添加NSApplicationActivateIgnoringOtherApps 成功了!谢谢!
    • 嗨@Adrian 和同志,我有一个问题,如果进程的所有窗口都被最小化,它不是取消最小化窗口。反正有没有最小化窗口然后聚焦?这是我的问题的截屏视频,我正在制作一个 Firefox 配置文件管理器 - youtube.com/watch?v=sR5uf4eR8js
    猜你喜欢
    • 1970-01-01
    • 2010-12-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-12
    • 2019-03-29
    • 2014-08-15
    • 2015-09-09
    • 2022-01-26
    相关资源
    最近更新 更多