美文网首页Mac-Catalyst
【Mac开发之】如何在Mac-Catalyst应用访问AppKi

【Mac开发之】如何在Mac-Catalyst应用访问AppKi

作者: 飞天蛋挞 | 来源:发表于2021-01-29 14:42 被阅读0次

    前言:最近在把一个iOS项目移植到Mac端,最开始写了一个Mac版本的StatusBarItem App,和主App拆分成了两个App。然鹅老板表示最好能把Mac app的功能通过Mac-Catalyst实现,这样就只需要一个App。。那么干饭人只能想办法了。。。

    首先Mac-Catalyst是苹果发布的一个帮助开发者将iPad应用移植到macOS上的服务,这些网上有很多资料,就不说了。。但是因为纯iPad应用在移植过程中,可能还要针对Mac版本进行二次开发,比如添加StatusBarItem等。但是Mac-Catalyst仅可使用AppKit API的一小部分,如果你在代码中直接使用例如NSWindow等AppKit API中的类,你就会得到这种报错。。。

        最后找到了访问AppKit API的两种方式:使用 Dynamic或者使用Mac bundle。在我的项目里面我采用的是后者的方式,具体实现步骤如下:

    1、添加Mac Bundle

    命名为MacPlugin

    我们将其命名为MacPlugin

    2、在主Target添加MacPlugin

    3、在MacPlugin中创建一个protocol

    Plugin.swift

    @objc(Plugin)

    protocolPlugin:NSObjectProtocol {

    init()

    func sayHello()

    }

    4、实现MacPlugin.swift

    classMacPlugin:NSObject, Plugin {

        required over ride init() {

        }

        func sayHello() {

            let    alert=NSAlert()

            alert.alertStyle=.informational

            alert.messageText="Hello from AppKit!"

            alert.informativeText="It Works!"

            alert.addButton(withTitle:"OK")

            alert.runModal()

        }

    }

    5、在主程序加载bundle

    OK!以上

    相关文章

      网友评论

        本文标题:【Mac开发之】如何在Mac-Catalyst应用访问AppKi

        本文链接:https://www.haomeiwen.com/subject/rjpxtltx.html