macOS Swift 应用程序:imkxpc_getApplicationProperty:reply:使用不正确的 属性 值 4 调用,失败

macOS Swift App: imkxpc_getApplicationProperty:reply: called with incorrect property value 4, bailing

我正在使用以下环境编写 macOS Swift 应用程序:

Swift 应用的主要视图代码如下 UI;

import SwiftUI

struct ContentView: View {

  var body: some View {
    VStack {
      Text("Hello")
      Button(action: {

      }) {
        Text("Download")
      }
    }
      .frame(maxWidth: .infinity, maxHeight: .infinity)
  }

}

应用程序编译和 运行 正常,没有错误或警告。但是,当应用程序window失去焦点(例如,单击桌面或其他应用程序window)或失去焦点后获得焦点时,控制台会显示以下错误:

2020-10-17 07:24:02.939 HelloAppCode[11611:207556] imkxpc_getApplicationProperty:reply: called with incorrect property value 4, bailing.
2020-10-17 07:24:02.939 HelloAppCode[11611:207556] Text input context does not respond to _valueForTIProperty:
2020-10-17 07:24:02.939 HelloAppCode[11611:207556] imkxpc_getApplicationProperty:reply: called with incorrect property value 4, bailing.
2020-10-17 07:24:02.939 HelloAppCode[11611:207556] Text input context does not respond to _valueForTIProperty:

但是,当按钮从视图中移除时,即:

import SwiftUI

struct ContentView: View {

  var body: some View {
    VStack {
      Text("Hello")
    }
      .frame(maxWidth: .infinity, maxHeight: .infinity)
  }

}

控制台未显示任何错误。如果使用其他控件(例如 TextField),也会出现错误消息。

我是 Swift 和 macOS 应用程序开发的新手,所以我想知道我的代码是否有问题? 如何使用 Buttons 和 TextFields 正确编写代码而不导致错误显示在控制台上?

谢谢。

此问题与 Swift 代码完全无关。 我在 macOS 上使用日文输入源编写 Swift 应用程序,因为我的键盘布局是日文,因此当应用程序 window get/lost 获得焦点时,错误消息显示在 Terminal/console 上。

将输入源更改为 English - ABC 即可解决问题。 您可以从 macOS System Preferences - Keyboard 更改输入源。从 Input Sources 选项卡将输入源添加或更改为 English - ABC

PS:当 ElectronJS 应用 运行 来自终端时,错误消息也会显示在终端上。更改输入源也可以解决问题。我想知道这是否是 non-English macOS 输入源的错误?