代码之家  ›  专栏  ›  技术社区  ›  Ilya Birman

Cocoa:插入点当前在哪个nstextview中闪烁?

  •  1
  • Ilya Birman  · 技术社区  · 15 年前

    给定一个nsapp对象(aka[nsapplication sharedaplication]),如何获取当前活动的nstextview,此时插入点闪烁(如果有)?-)

    我可以去[[nsapp keywindow]contentview]尝试遍历整个视图层次结构,但这似乎太难了。理想的代码应该是:【nsapp focusedtextview】。

    我尝试了一个应用程序和一个窗口的FirstResponder,以及FieldEditor:ForObject:,但这不会返回任何有趣的内容(至少对我来说)。

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

    谢谢

    2 回复  |  直到 15 年前
        1
  •  3
  •   ashcatch    15 年前

    这个 -firstResponder 函数返回字段编辑器。因此,如果您想要真实的视图,您可能需要检查第一响应者的委托才能访问它。也看到 field editor 详情。

    可能无法将IT系统范围作为nstextView,因为该对象通常位于不同的流程空间中。

        2
  •  1
  •   Peter Hosey    15 年前

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

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

    从好的方面来说,使用可访问性意味着你的应用程序(理论上)也应该与使用MLTE/HitextView的Carbon应用程序一起工作。