如何在Swift中获取另一个应用程序的NSDockTile对象?
我的想法是我可以获得一系列NSRunningApplications并从那里访问NSDockTile但我只能从NSApplication获得NSDockTile。所以我想另一个更好的问题是,有没有办法将NSRunningApplication转换为NSApplication或从另一个应用程序的BundleIdentifier或其他东西制作NSApplication对象?
我提前为任何愚蠢道歉,因为我是Swift和Cocoa应用程序的新手。
答案 0 :(得分:2)
我怀疑是否有任何(制裁的)方式来做到这一点。其他应用程序的扩展区块属于这些应用程序,我无法想象Apple会提供一种方法来提供从另一个应用程序访问它的方法,因为它有明显的滥用可能性。
此外,Exception in thread "main" java.io.WriteAbortedException: writing aborted; java.io.NotSerializableException: thibodeau17.Computer
at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at java.base/java.util.ArrayList.readObject(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at java.base/java.io.ObjectStreamClass.invokeReadObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readSerialData(Unknown Source)
at java.base/java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject0(Unknown Source)
at java.base/java.io.ObjectInputStream.readObject(Unknown Source)
at thibodeau17.ReadComputers.main(ReadComputers.java:19)
Caused by: java.io.NotSerializableException: thibodeau17.Computer
at java.base/java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.base/java.io.ObjectOutputStream.writeObject(Unknown Source)
at java.base/java.util.ArrayList.writeObject(Unknown Source)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.base/java.lang.reflect.Method.invoke(Unknown Source)
at java.base/java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
at java.base/java.io.ObjectOutputStream.writeSerialData(Unknown Source)
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
at java.base/java.io.ObjectOutputStream.writeObject0(Unknown Source)
at java.base/java.io.ObjectOutputStream.writeObject(Unknown Source)
at thibodeau17.StoreComputers.main(StoreComputers.java:23)
和NSApplication
完全不同的对象。两者之间没有任何关系,并试图将一个引用强制转换为另一个类,这肯定会让人痛心。
NSRunningApplication
是您的申请。它是执行应用程序的基础,包含运行和控制应用程序,调度事件,建立模态对话框等的方法。
NSApplication
是一个轻量级对象,它提供了与您一起运行的另一个应用程序的一些有用信息。但它与其他应用程序没有任何直接关联,也无法控制(除非另有提供)。