我很费劲地想弄清楚如何获取 NSCell(特别是 NSFormCell 和 NSTextFieldCell)的文本字段编辑器 (NSTextView) 的地址? NSCell 没有访问它的属性。我确实发现编辑器在实际编辑字段之前不会被分配。
我想设置委托(delegate),以便捕获击键以自动完成。
最佳答案
默认情况下,每个窗口都有一个字段编辑器。即使控件或单元格使用自定义字段编辑器,它仍然由窗口出售。您可以调用 -[NSWindow fieldEditor:forObject:]
来获取给定控件的字段编辑器。
但是,字段编辑器的委托(delegate)始终设置为它所代表的控件。将委托(delegate)设置为其他东西可能会破坏事情。因此,您通常会使用控件的自定义子类并在那里实现委托(delegate)方法。
最后,控制完成通常是在 TextView 委托(delegate)中使用 -textView:completions:forPartialWordRange:indexOfSelectedItem:
来完成,而不是通过捕获击键来完成。
关于macos - 尝试查看 NSCell 的 NSTextView 的委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27423598/