我使用了一个NSTokenField,但是在指定的延迟之后,它不会显示带有建议的小狗
我试过这样做:
class ViewController: NSViewController
{ @IBOutlet weak var tokenFiled: NSTokenField!
override func viewDidLoad()
{ super.viewDidLoad()
tokenFiled.delegate = self
tokenFiled.tokenStyle = .default
tokenFiled.completionDelay = 0.25
}
override var representedObject: Any?
{ didSet { } }
}
extension ViewController: NSTokenFieldDelegate, NSTokenFieldCellDelegate
{
func tokenFieldCell(_ tokenFieldCell: NSTokenFieldCell, completionsForSubstring substring: String, indexOfToken tokenIndex: Int, indexOfSelectedItem selectedIndex: UnsafeMutablePointer<Int>) -> [Any]
{
let names = ["Name1", "Name 2", "Name3"]
return names
}
}有什么想法吗,我哪里做错了?
发布于 2017-02-19 22:14:11
明白了,
我使用了错误的委托方法。
func tokenFieldCell(_ tokenFieldCell: NSTokenFieldCell, completionsForSubstring substring: String, indexOfToken tokenIndex: Int, indexOfSelectedItem selectedIndex: UnsafeMutablePointer<Int>) -> [Any]而不是:
func tokenField(_ tokenField: NSTokenField, completionsForSubstring substring: String, indexOfToken tokenIndex: Int, indexOfSelectedItem selectedIndex: UnsafeMutablePointer<Int>?) -> [Any]? 现在运行得很好
https://stackoverflow.com/questions/42328116
复制相似问题