从NSTextInputContext获取标记范围

时间:2014-12-22 19:39:21

标签: objective-c

我试图清理某个项目的弃用警告,代码片段如下:

NSInputManager* im = [NSInputManager currentInputManager];
if (im && [im markedRange].length > 0) return NO;

我到目前为止:

NSTextInputContext* im = [NSTextInputContext currentInputContext];
if (im && [im /* What goes here? */].length > 0) return NO;

我正在尝试获得NSTextInputContext的明显范围。我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

这应该有效:

NSTextInputContext* context = [NSTextInputContext currentInputContext];
id<NSTextInputClient> client = context.client;
if (client && client.markedRange.length > 0) return NO;

客户端通常是具有焦点的文本视图,因此是关键窗口的第一个响应者。所以,你可以绕过这种方式,直接进入文本视图。