问题标签 [nsviewrepresentable]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
87 浏览

swift - 项目重新排序后,SwiftUI 绑定编辑错误的文本字段

Xcode 13 测试版 5、iOS 14、macOS 11.6

我有一个列出一些孩子的父 SwiftUI 视图。每个孩子都绑定到一个NSViewRepresentable. 一切正常,我可以按预期编辑值。但是,一旦我对列表中的项目重新排序并编辑了一个字段,它就会编辑错误的字段。看起来绑定与之前的项目订单保持不变。

看起来是这样的:

在此处输入图像描述

这是父母:

...这是子视图:

最后,NSViewRepresentable这就是所谓的GrowingField. 为简单起见,我省略了NSTextField子类。

为什么在NSViewRepresentable重新排序后绑定到不跟随字段?

这是一个示例项目,可供下载并试用。

0 投票
1 回答
79 浏览

swift - 如何在 macOS 上使用 NSViewRepresentable 在 SwiftUI 应用程序中使用 CAEmitterLayer

我想CAEmitterLayer在基于 SwiftUI 的 macOS 应用程序中使用 a 。

问题:图层本身是完全可见的,但它不发射任何粒子。

→ 这是我在 GitHub 上的演示项目

在此处输入图像描述

我基本上为处理发射器层本身NSViewRepresentable的自定义类构建了一个。EmitterNSView: NSView

我可以清楚地看到应用程序中图层的绿色背景这一事实表明单元格有问题?在这一点上感觉很失落。

工作中非常相似的实现UIKit就好了。

如何CAEmitterLayer在基于 SwiftUI 的应用程序中的 macOS 上使用?

0 投票
0 回答
66 浏览

macos - SwiftUI 2.0 无法使用 NSViewRepresentable 从 NSWindow 上的 styleMask 中删除 .titled

我正在为 SwiftUI 2.0 重新设计我的应用程序,但在复制我可以使用 AppDelegate 执行的操作时遇到了问题。

我正在使用 NSViewRepresentable 来访问 NSWindow,因此我可以删除窗口的标题栏(我知道它不在指南中,但永远不会提交)。从 中删除.titledstyleMask,应用程序崩溃。

当我运行应用程序时,我得到Thread 1: EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

我想要用我的应用程序实现的只是一个菜单栏应用程序,它看起来与 Spotlight 完全一样。没有停靠图标,没有标题栏,所有首选项都由弹出框或其他窗口处理。

编辑:

这与 canBecomeKey 属性有关吗?

0 投票
0 回答
22 浏览

swift - NSViewRepresentable 重叠滚动条使其无法点击

当 aNSViewRepresentable嵌入 SwiftUIScrollView并且“显示滚动条”系统设置设置为“滚动时”时,无法拖动或单击滚动条。

我正在尝试解决这个问题一段时间,但我的想法已经不多了。唯一可行的方法是使用 AppKitNSScrollView并将 SwiftUI 视图嵌入其中。但这打开了另一罐蠕虫。

  • 有没有人见过这个?
  • 任何想法如何解决这一问题?对我来说似乎是一个错误。但我想知道是否有人能想到一个有效的解决方法?

请检查我的最小示例: https ://github.com/paxos/NSViewRepresentableScrollBug

演示

0 投票
1 回答
29 浏览

swiftui - SwiftUI 上下文中的实时 NSTextField 格式化程序

经过大量的试验和错误,我最终实现了以下实现,以对文本字段中的数字输入进行实时格式化。使用 SwiftUI TextField() 的各种尝试导致了许多异常。下面的方法似乎很可靠,但即使在这里我也很难找到对 NSTextField 进行子类化的正确方法,因为我找不到任何关于如何处理指定初始化程序以使其与 SwiftUI 的帧修饰符兼容的文档。

剩下的一个小异常是,当将光标放在输入的数字中间然后键入非数字字符时,即使文本中没有发生任何变化,光标也会前进。这是宜居的,但我宁愿避免这种情况发生。

有没有更好、更“合适”的方法来实现这一点?