鉴于NSApp对象(又名[NSApplication sharedApplication]),如何获取当前活动的NSTextView,其中插入点现在正在闪烁(如果有的话)? : - )
我可以去[[NSApp keyWindow] contentView]并尝试遍历整个视图层次结构,但这看起来太难了。理想的代码是:[NSApp focusedTextView]。
我尝试了一个应用程序和一个窗口的firstResponder,还有fieldEditor:forObject:,但这并没有返回任何有趣的东西(至少对我而言)。
顺便说一句,如果有人知道如何获得系统范围内的当前文本视图,那就更酷了(Accessibility API不起作用:它不会返回Cocoa NSTextView)。
由于
答案 0 :(得分:3)
-firstResponder
函数返回字段编辑器。因此,如果您想要真实视图,您可能需要检查第一个响应者的委托才能获得它。有关详细信息,另请参阅field editor。
可能无法将系统扩展为NSTextViews,因为该对象通常位于不同的进程空间中。
答案 1 :(得分:1)
顺便说一句,如果有人知道如何获得系统范围内的当前文本视图,那就更酷了(Accessibility API不起作用:它不会返回Cocoa NSTextView)。
不可能。 NSTextViews是按进程;如果没有通过NSConnection为其提供服务的其他进程,您无法从另一个进程获取NSTextView的代理。你只需要使用辅助功能。
从好的方面来说,使用辅助功能意味着您的应用程序应该(理论上)也适用于使用MLTE / HITextView的Carbon应用程序。