Skip to content

fix/修复 x86_64 macOS 中 desktop_pet_v2.pyw 宠物鼠标右键不弹菜单 #237

@tqjason

Description

@tqjason
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)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions