gpt4 book ai didi

ios - 在 Swift 中为 UITextField 创建自定义输入

转载 作者:可可西里 更新时间:2023-11-01 02:27:04 25 4
gpt4 key购买 nike

我正在用 Swift 语言编写 iOS 应用程序,我所要做的就是为文本字段创建自定义输入。

我创建了一个带有两个按钮的附加 View Controller ,我想要的是这个 View Controller (而不是键盘)在我突出显示我的文本字段时弹出。
基本上我想要的是创建一个小的自定义键盘,但我只是希望它在我的应用程序中:我找到了很多关于创建自定义键盘的教程,但它与在以下情况下弹出的简单 View Controller 不同文本字段突出显示。

你能建议如何在 Swift 中将我的 View Controller 分配给 textField.inputViewController 吗?

谢谢

最佳答案

您可以将自己的 View Controller 分配给 inputViewcontroller:

您的 viewController 必须是 UIInputViewController 的子类,例如:

class CustomInputViewController: UIInputViewController {
@IBOutlet var insertTextButton: UIButton!

override func viewDidLoad() {
super.viewDidLoad()
self.inputView?.translatesAutoresizingMaskIntoConstraints = false
// Do any additional setup after loading the view.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

@IBAction func insertText(_ button: UIButton){
self.textDocumentProxy.insertText((button.titleLabel?.text)!);
}
}

这里只有一个按钮 insertTextButton 我在 xib 文件中设计的。

在您的主视图 Controller 中,您需要文本字段(或 TextView )的子类:

class textfield: UITextField {
var _inputViewController : UIInputViewController?
override public var inputViewController: UIInputViewController?{
get { return _inputViewController }
set { _inputViewController = newValue }
}
}

您分配给您的文本字段。

现在您可以将自己的 inputViewcontroller 分配给您的文本字段,例如:

class ViewController: UIViewController {

private var customInputViewController = CustomInputViewController(nibName: "CustomInputViewController",
bundle: nil)
@IBOutlet var textField: textfield!
override func viewDidLoad() {
super.viewDidLoad()
self.textField.inputViewController = customInputViewController
// Do any additional setup after loading the view, typically from a nib.
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}


}

我使用名为 CustomInputViewController.xib 的 xib 文件来设计键盘

关于ios - 在 Swift 中为 UITextField 创建自定义输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27203558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com