diff --git a/frontends/desktop_pet_v2.pyw b/frontends/desktop_pet_v2.pyw
index f4896e9..dc59967 100644
--- a/frontends/desktop_pet_v2.pyw
+++ b/frontends/desktop_pet_v2.pyw
@@ -398,7 +398,10 @@ if sys.platform == 'darwin':
from AppKit import NSMenu, NSMenuItem, NSApp
menu = NSMenu.alloc().init()
- pet = self.window().delegate() # Assuming the window’s delegate is MacPet instance
+ # 优先使用绑定的 mac_pet,降级尝试 delegate
+ pet = getattr(self, 'mac_pet', None) or self.window().delegate()
+ if not pet:
+ return
for skin_name in pet.available_skins: # preload this in MacPet.__init__
item = NSMenuItem.alloc().initWithTitle_action_keyEquivalent_(
@@ -421,6 +424,9 @@ if sys.platform == 'darwin':
self.content_view = DraggableImageView.alloc().initWithFrame_(
NSMakeRect(0, 0, self.display_width, self.display_height)
)
+ # 将 MacPet 实例绑定到 View 上
+ self.content_view.mac_pet = self
+
self.image_view = self.content_view.image_view
self.overlay_view = self.content_view.overlay_view
self.window.setContentView_(self.content_view)