macos - 尝试查看 NSCell 的 NSTextView 的委托(delegate)

标签 macos cocoa nstextview

我很费劲地想弄清楚如何获取 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/

相关文章:

objective-c - 如何在 Objective-C 中获取用户的语言环境?

php - 在 Mac 上升级到 PHP 7

c++ - 黑白图形上下文

xcode - 创建 OSX 通知 Xcode 4 风格

ios - Xcode 7.1 Swift 2 Interface Builder 文件中的未知类

objective-c - NSTextView 不会更新,除非我点击它,并且它不会聚焦。有任何想法吗?

swift - 添加文本后将 NSTextView 滚动到底部

swift - 如何在工具栏上打开应用程序窗口单击 safari 应用程序扩展?

cocoa - 将 NSDictionary 的本地声明传递给 PerformSelector

objective-c - 追加到 NSTextView 并滚动