gpt4 book ai didi

objective-c - cocoa 为 os x 10.11 构建,支持 NSTouchbar

转载 作者:行者123 更新时间:2023-12-03 16:53:46 26 4
gpt4 key购买 nike

我知道在 Swift 中可以使用#available,而 Objective-C 不支持这一点。

还有没有办法制作一个可以在 10.11 上运行但也支持 NSTouchbar(从 10.12 开始)的 os x 应用程序?

最佳答案

#available 和 Swift 中的 friend 是处理 ObjC 中新功能和向后兼容性的更复杂方法的简化(和改进)。如果您使用 ObjC,则没有与 #available 直接等效的方法,因此您必须退回到那些旧方法。 Apple 关于此类的文档可以在 SDK Compatibility Guide 中找到。 。要点:

  1. 使用最新的 Xcode 8.x/macOS 10.12.x(或更高版本)SDK 构建您的项目。

  2. 将项目的基础 SDK 设置为 macOS 10.12(或更高版本),并将其最低部署目标设置为 10.11。

  3. 这使得您正在寻找的 AppKit 类/方法成为“弱链接”,因此您可以在运行时检查它们是否存在。例如:

    if ([NSTouchBar class]) {
    self.touchBar = [[NSTouchBar alloc] init];
    self.touchBar.delegate = self;
    self.touchBar.defaultItemIdentifiers = @[ /*...*/ ];
    //...
    }

    在触摸栏支持之前的 macOS 版本中,[NSTouchBar class] 返回 nil,因此不会发生任何触摸栏使用情况。在支持触摸栏的版本中,您的 if 主体会执行。

关于objective-c - cocoa 为 os x 10.11 构建,支持 NSTouchbar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41578506/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com