gpt4 book ai didi

组合操作时的 IOS Swift IBAction 行为

转载 作者:行者123 更新时间:2023-11-30 11:15:06 25 4
gpt4 key购买 nike

我有一个自定义键盘扩展,它可以按预期工作,但我遇到了一些我无法解释的奇怪行为。它主要设计用于将数据输入到 Excel 电子表格中,因此击键次数越少越好。

我有 2 个 IBActions。Keypressed 获取按键的值并将其插入到当前单元格中。Returnpressed 模拟回车键,将光标移动到下一个单元格。

这些工作如上所述,这一切都很好,但我现在尝试组合这些操作,以便用户只需按第一个键即可插入文本,然后移至下一个单元格。

因此,当我简单地扩展 Keypressed IBAction 中的代码以将代码包含在 Returnpressed 操作中时,它只需将回车符插入到文本中并保留在同一单元格中。

请问我缺少什么?

这是一个代码片段:

extension UIKeyInput{
func `return`() -> Void{
insertText("\n")
}

}

class KeyboardViewController: UIInputViewController, AVAudioPlayerDelegate {

@IBAction func KeyPressed(_ sender: Any) {

let string = (sender as AnyObject).titleLabel??.text

(textDocumentProxy as UIKeyInput).insertText("\(string!)")

**//THIS IS THE LINE THAT FIXED THIS FOR ME
textDocumentProxy.adjustTextPosition(byCharacterOffset: -1)**

self.EnterPressed(nil)

}

@IBAction func EnterPressed(_ sender: Any?) {

//default action for a return key press
textDocumentProxy.return()

}

最佳答案

我认为你需要重写UITextInputDelegate textDidChange方法(UIInputViewController实现了UITextInputDelegate)。事实证明,textDidChange是在文本更改时被调用的。并使您的单元格的下一个文本字段成为第一响应者。

关于组合操作时的 IOS Swift IBAction 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51816571/

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