小编And*_*dyy的帖子

通过命令行将文件 URL 和 args 发送到(正在运行的)macOS 应用程序

我一直在尝试创建一种方法来告诉我的(正在运行的)macOS 应用程序打开一些文件并为命令提供一些额外的参数。

对于冷启动应用程序,使用

$ open MyApp.app fileA.txt --args --foo-arg
Run Code Online (Sandbox Code Playgroud)

将启动应用程序,我将能够检查--foo-arg通过UserDefaults/ CommandLine/ ProcessInfo。但是,如果应用程序已经在运行,--foo-argUserDefaults/ ProcessInfo?/ 中缺少CommandLine

我一直在努力解决这里的解决方案,因为我有一些要求使事情变得更加困难。

要求

  1. 发送到应用程序的文件路径必须使用沙箱权限打开/保存
  2. 参数和文件路径必须同时被app拦截。

潜在的解决方案

XPC

有些人建议我使用 XPC,但在阅读它之后,我不确定该解决方案的外观如何?

  • 我是否必须创建一个始终运行的 Launch Agent 应用程序伴侣,以便它可以检测命令行操作并将其传递给我的应用程序?
  • 这如何与沙箱一起使用,因为每个进程都有自己的权限?

苹果脚本

  • 我是否应该使用 Apple 脚本告诉我的应用程序使用参数打开这些文件,从而绕过沙箱功能?
  • 通过 AppleScript 打开文件时,我可以保存这些文件吗?

网址方案

我可以注册我的应用程序以拥有自己的 URL 方案,但 NSApplicationDelegate 处理传入 URL 的方式分为两批。首先是它可以打开的 URL,然后是它无法打开的 URL 方案或文件路径。IE:

open -a MyApp.app myapp:foo; open -a MyApp.app file.txt
Run Code Online (Sandbox Code Playgroud)

我可能可以完成这项工作,但它有点俗气,我真的很想以正确的方式做到这一点。

macos cocoa applescript xpc appkit

7
推荐指数
1
解决办法
492
查看次数

来自pList的UITableView分段

我很难找到一个易于理解的教程,有关于从pList文件中获取数据的分段UITableView.

我遇到麻烦的是,如何正确构建pList文件以满足2个不同的部分.

iphone cocoa-touch objective-c ios

4
推荐指数
1
解决办法
2870
查看次数

记录didSelectRowAtIndexPath中的特定行

在方法中

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    // do stuff here
}
Run Code Online (Sandbox Code Playgroud)

我有一个分组表视图.如果我想要第1部分的第1行吐出来NSLog,我该怎么做?另外,如果我想要第3部分的第2行来制作日志,会不同?到目前为止,我只使用这种方法在笔尖之间转换.

cocoa-touch objective-c uitableview didselectrowatindexpath ios

1
推荐指数
1
解决办法
792
查看次数

如何将self.title与Objective C中的字符串进行比较?

我在下面的代码中做错了什么?我的if语句缺少一些东西:

if ([self.title] = "Upcoming Events") {

} else {

}
Run Code Online (Sandbox Code Playgroud)

iphone if-statement objective-c ios

0
推荐指数
1
解决办法
77
查看次数