Swift和NSTextField:如何使用文本补全

问题描述 投票:0回答:1

我想为NSTextField创建这样的自动填充列表:enter image description here

我发现了:https://developer.apple.com/documentation/appkit/nscontroltexteditingdelegate/1428925-control

optional func control(_ control: NSControl, 
             textView: NSTextView, 
          completions words: [String], 
  forPartialWordRange charRange: NSRange, 
  indexOfSelectedItem index: UnsafeMutablePointer<Int>) -> [String]

有人可以在任何示例中说明如何使用吗?我不太明白。

我试图实现这一点,但是没有任何效果。您可以在下面找到我的代码。

提前谢谢您

我的代码:

class ViewController: NSViewController, NSTextFieldDelegate {

@IBOutlet weak var InputField: NSTextField!

override func viewDidLoad() {
    super.viewDidLoad()

    InputField.delegate = self
}

func control(_ control: NSControl, textView: NSTextField, completions words: [String], forPartialWordRange charRange: NSRange, indexOfSelectedItem index: UnsafeMutablePointer<Int>) -> [String] {

    let words = ["Hello", "Brother"]

    return words
}
}
swift delegates nstextfield
1个回答
0
投票
该方法仅允许您控制建议。 (例如:订单,过滤器等。)

因此,如果您不想自定义建议,则只需返回单词:

optional func control(_ control: NSControl, textView: NSTextView, completions words: [String], forPartialWordRange charRange: NSRange, indexOfSelectedItem index: UnsafeMutablePointer<Int>) -> [String] { return words }

© www.soinside.com 2019 - 2024. All rights reserved.