Cocoa:插入点当前闪烁的NSTextView是什么?

时间:2009-05-08 17:49:43

标签: cocoa text

鉴于NSApp对象(又名[NSApplication sharedApplication]),如何获取当前活动的NSTextView,其中插入点现在正在闪烁(如果有的话)? : - )

我可以去[[NSApp keyWindow] contentView]并尝试遍历整个视图层次结构,但这看起来太难了。理想的代码是:[NSApp focusedTextView]。

我尝试了一个应用程序和一个窗口的firstResponder,还有fieldEditor:forObject:,但这并没有返回任何有趣的东西(至少对我而言)。

顺便说一句,如果有人知道如何获得系统范围内的当前文本视图,那就更酷了(Accessibility API不起作用:它不会返回Cocoa NSTextView)。

由于

2 个答案:

答案 0 :(得分:3)

-firstResponder函数返回字段编辑器。因此,如果您想要真实视图,您可能需要检查第一个响应者的委托才能获得它。有关详细信息,另请参阅field editor

可能无法将系统扩展为NSTextViews,因为该对象通常位于不同的进程空间中。

答案 1 :(得分:1)

  

顺便说一句,如果有人知道如何获得系统范围内的当前文本视图,那就更酷了(Accessibility API不起作用:它不会返回Cocoa NSTextView)。

不可能。 NSTextViews是按进程;如果没有通过NSConnection为其提供服务的其他进程,您无法从另一个进程获取NSTextView的代理。你只需要使用辅助功能。

从好的方面来说,使用辅助功能意味着您的应用程序应该(理论上)也适用于使用MLTE / HITextView的Carbon应用程序。