我正在与onCommit一起在SwiftUI中使用文本视图(该应用程序适用于MacOS。)>
struct TextBlockView: View { @State private var content = "" var id = UUID() var body: some View { let block = MacEditorTextView(text: $content, onEditingChanged: { print("editing changed") }, onCommit: { Keystroke.keystroke.enterPressed = true print("add new textblock here") //trigger function to create next block }).multilineTextAlignment(.leading) .frame(minWidth: 300, maxWidth: .infinity, minHeight: 40, maxHeight: .infinity) .focusable() let tag = Rectangle() .fill(Color.init(red: 1.00, green: 0.95, blue: 0.80, opacity: 1)) .frame(width: 10, height: 10) return HStack { tag block } } }
当用户单击文本框以外的位置(添加新的文本框)时,将发生所需的操作。但是,我希望在用户点击回车时发生此操作。当我第一次为onCommit编写代码时,它以这种方式工作了大约30分钟,然后才确定一次提交是单击而不是按回车键。
我曾尝试使用“ onCommand”代替onCommit,但这没有用,并且我不确定是否使用了适当的选择器。我还尝试捕获在NSWindow级别按下Enter键时的情况。但是,我决定不希望这样做,因为我不希望每当按下Enter键时都会执行此操作。
非常感谢将onCommit与特定键(返回)相关联的任何帮助。
我是StackOverflow的新手,所以如果需要更多信息,请告诉我。
我正在与onCommit一起在SwiftUI中使用文本视图(该应用程序适用于MacOS)。 struct TextBlockView:视图{@State private var content =“” var id = UUID()var正文:一些视图{...
您可以实现类似这样的功能。当您单击蓝色框时,它会发送一个单据以表明您已拥有。将框放在文本框后面。