Swift - 如何在Swift中获取另一个应用程序的NSDockTile对象?

时间:2018-04-06 15:30:43

标签: swift macos cocoa nsdocktile

如何在Swift中获取另一个应用程序的NSDockTile对象?

我的想法是我可以获得一系列NSRunningApplications并从那里访问NSDockTile但我只能从NSApplication获得NSDockTile。所以我想另一个更好的问题是,有没有办法将NSRunningApplication转换为NSApplication或从另一个应用程序的BundleIdentifier或其他东西制作NSApplication对象?

我提前为任何愚蠢道歉,因为我是Swift和Cocoa应用程序的新手。

1 个答案:

答案 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是一个轻量级对象,它提供了与您一起运行的另一个应用程序的一些有用信息。但它与其他应用程序没有任何直接关联,也无法控制(除非另有提供)。