如何在 Jetpack Compose 中将选定文本的菜单自定义到 TextField?我的意思是这样的:
在官方文档或互联网上没有找到任何有关如何使用 Jetpack Compose 执行此操作的信息。
我正在使用 Jetbrains Compose 开发桌面应用程序,但我也愿意接受使用 Swing(它在幕后使用)的解决方案。我想实现一个功能,其中应用程序窗口最初位于系统托盘图标上,类似于 JetBrains Toolbox 的行为方式(我想将一个(未修饰的)窗口放置在靠近托盘图标的位置)。
我尝试使用鼠标事件来检测托盘图标上的点击并相应地定位窗口,但该方法无法实现所需的行为。它确实有效,但窗口有时会跳跃(取决于我单击的位置,并且解决方案总体看起来很奇怪)。
我发布我的解决方案,以防有人需要它:
internal object XTray {
fun initialize(image: Image, onClick: (x: Int, y: Int) -> Unit) {
createTrayIcon(image, onClick)
}
private fun createTrayIcon(
image: Image,
onClick: (x: Int, y: Int) -> Unit,
): TrayIcon {
val systemTray = SystemTray.getSystemTray()
val trayIcon = TrayIcon(image, "Open X")
trayIcon.popupMenu = PopupMenu("X")
trayIcon.addMouseListener(createTrayMouseListener { x, y ->
onClick(x, y)
})
systemTray.add(trayIcon)
return trayIcon
}
private fun createTrayMouseListener(
onClick: (x: Int, y: Int) -> …
Run Code Online (Sandbox Code Playgroud)