electron [Bug]:在macOS上,tray.getBounds()最初返回的x和y值不正确,

acruukt9  于 3个月前  发布在  Electron
关注(0)|答案(8)|浏览(43)

预检清单

Electron 版本

21.1.0

您正在使用的操作系统是什么?

macOS

您正在使用的操作系统版本是什么?

12.6( Monterey )

您正在使用的架构是什么?

arm64(包括 Apple Silicon)

最后已知正常工作的 Electron 版本

  • 无响应*

预期行为

tray.getBounds()Tray 初始化后不久调用时应返回当前边界。如果这是不可能的,那么 tray 示例应发出一个 ready 事件,以便我们知道何时 getBounds() 将返回正确的边界。

实际行为

tray.getBounds() 在某个任意时间之前返回错误的值。在我的测试用例中,大约需要 500ms 才能返回正确的值。

测试用例 Gist URL

https://gist.github.com/davej/be1503e76acb237fc2ef513445d80b70

其他信息

上面我的测试用例的输出。只有 setTimeout:500 是正确的。

y4ekin9u

y4ekin9u1#

请注意:在#36031中有一些关于此问题原因的额外细节/调查,我将其关闭为此问题的重复。

72qzrwbm

72qzrwbm3#

这个问题已经被自动标记为过时。如果这个问题仍然影响到你,请留下任何评论(例如“提升”),我们会保持开放。如果你有任何新的附加信息——特别是,如果这个问题在 latest version of Electronbeta 中仍然可复现——请在你的评论中包含它!

nom7f22z

nom7f22z4#

仍然是一个问题。

xam8gpfp

xam8gpfp5#

Facing same shit when trying to create window based on tray bounds instantly after creating tray

q5lcpyga

q5lcpyga6#

这个问题已经被自动标记为过时。如果这个问题仍然影响到你,请留下任何评论(例如“提升”),我们会保持开放。如果你有任何新的附加信息——特别是,如果这个问题在 latest version of Electronbeta 中仍然可复现——请在你的评论中包含它!

ajsxfq5m

ajsxfq5m8#

关于这个问题的更新,我也遇到了同样的问题。以下是一些帮助调试的信息:
预期行为:trayIcon.getBounds() 应该为 xy 返回正确的值,这样我才能正确地设置窗口位置与托盘图标。
扩展上下文:我还检查了使用 setTimeout 获取这些绑定值。即使在 10 * 1000(10秒)延迟后,值仍然是错误的。
系统:

Electron Version: 26.2.1
OS: Mac OS
OS Version: Sonoma (14.0)
Arch: arm64 (Apple Silicon)

值:

trayIcon.getBounds() = { x: 0, y: 900, width: 32, height: 24 }
mainWindow.getBounds() = { x: 520, y: 287, width: 400, height: 327 }
app.isPackaged = false

相关问题