获取 UITextField 的 returnKeyType 文本
Get returnKeyType text for UITextField
我正在创建自定义 UIToolBar
以作为 inputAccessoryView
添加到 UITextField
,我想在此工具栏的右侧添加一个 UIBarButtonItem
作为此文本字段的 return 键,此 barButtonItem 的文本应与该文本字段的键盘相同。
我的方法是:
let buttonDone = UIBarButtonItem(title: myTextField.returnKeyType, style: .done, target: self, action: #selector(pickerDone)
let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
// toolbar
let toolBar = UIToolbar()
toolBar.barStyle = .default
toolBar.items = [space, buttonDone]
toolBar.sizeToFit()
// setup input
myTextField.inputAccessoryView = toolBar
但是我得到这个错误:
无法将类型 'UIReturnKeyType?' 的值转换为预期的参数类型 'String?'
所以,我尝试这样的事情:
title: myTextField.returnKeyType.text
但是 returnKeyType
没有 .text
变量或类似的...
有什么办法吗?
我应该走另一条路吗?
没有将 UIReturnKeyType 枚举转换为字符串的内置方法。您将需要使用所有可能值上的开关来编写自己的代码。
这是一个使用扩展的解决方案。根据需要添加对其他值的支持。
extension UIReturnKeyType {
var label: String {
switch self {
case .default:
return "Return"
case .go:
return "Go"
case .done:
return "Done"
default:
return "Enter"
}
}
}
然后您可以将其用作:
let buttonDone = UIBarButtonItem(title: myTextField.returnKeyType.label, style: .done, target: self, action: #selector(pickerDone)
我正在创建自定义 UIToolBar
以作为 inputAccessoryView
添加到 UITextField
,我想在此工具栏的右侧添加一个 UIBarButtonItem
作为此文本字段的 return 键,此 barButtonItem 的文本应与该文本字段的键盘相同。
我的方法是:
let buttonDone = UIBarButtonItem(title: myTextField.returnKeyType, style: .done, target: self, action: #selector(pickerDone)
let space = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: nil, action: nil)
// toolbar
let toolBar = UIToolbar()
toolBar.barStyle = .default
toolBar.items = [space, buttonDone]
toolBar.sizeToFit()
// setup input
myTextField.inputAccessoryView = toolBar
但是我得到这个错误:
无法将类型 'UIReturnKeyType?' 的值转换为预期的参数类型 'String?'
所以,我尝试这样的事情:
title: myTextField.returnKeyType.text
但是 returnKeyType
没有 .text
变量或类似的...
有什么办法吗? 我应该走另一条路吗?
没有将 UIReturnKeyType 枚举转换为字符串的内置方法。您将需要使用所有可能值上的开关来编写自己的代码。
这是一个使用扩展的解决方案。根据需要添加对其他值的支持。
extension UIReturnKeyType {
var label: String {
switch self {
case .default:
return "Return"
case .go:
return "Go"
case .done:
return "Done"
default:
return "Enter"
}
}
}
然后您可以将其用作:
let buttonDone = UIBarButtonItem(title: myTextField.returnKeyType.label, style: .done, target: self, action: #selector(pickerDone)