【问题标题】:Swiftui: How to change the text and color of textfield keyboard return buttonSwiftui:如何更改文本字段键盘返回按钮的文本和颜色
【发布时间】:2020-09-08 00:16:16
【问题描述】:

在 swiftui 中使用 Texfield 时,是否可以自定义用户点击文本字段时激活的键盘上的返回按钮。我想改变颜色并让它说“搜索”。这是我正在使用的文本字段代码

       TextField("Search", text: $searchText, onCommit: show)
                     .foregroundColor(.primary)

如何自定义键盘返回按钮?

【问题讨论】:

  • .keyboardType(.webSearch) 怎么样?

标签: swift swiftui


【解决方案1】:

1) 将文本“搜索”设置为返回键:

textField.returnKeyType= .search

正如 Apple 文档所述:“指定返回键的可见标题是“搜索”。

2) 更改回车键的颜色

没有可用的公共 API。
您可以使用私有 API 以 hacky 方式 进行操作,但不能保证将来它会正常工作,即使这样 您的应用也会在应用商店审核中被拒绝。

【讨论】:

    【解决方案2】:

    如果您不实现自己的自定义键盘,则只能自定义返回键的标题和颜色(这是很多工作)。

    对于标题,您可以通过以下方式自定义:

    textField.returnKeyType= .search

    对于颜色,有两个选项:蓝色(启用)和灰色(禁用)。您可以通过有限的方式对其进行自定义:

    textField.enablesReturnKeyAutomatically

    此属性的默认值为 false。如果将其设置为 true,则键盘会在文本输入区域不包含文本时禁用 Return 键。一旦用户输入一些文本,Return 键就会自动启用。


    不幸的是,在SwiftUI 中,目前还没有这些东西的任何修饰符。您可能必须通过使用UIViewRepresentalbe 自己包装UITextField 来做到这一点。实现是这样的:

    struct SearchTextField: UIViewRepresentable {
        @Binding var searchText: String
        
        func makeUIView(context: Context) -> UITextField {
            let textField = UITextField()
            textField.placeholder = "Search"
            textField.returnKeyType = .google // or .search, .yahoo, etc.
            textField.enablesReturnKeyAutomatically = true
            textField.keyboardType = .webSearch
            // ... set other preferrences
            return textField
        }
        
        func updateUIView(_ textField: UITextField, context: Context) {
            //
        }
        
        // ...
    }
    

    如需更详细的实现,请查看good SO answer

    【讨论】:

      猜你喜欢
      • 2019-11-05
      • 1970-01-01
      • 2019-05-27
      • 2020-01-27
      • 2012-06-25
      • 1970-01-01
      • 2021-01-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多