我试图清理某个项目的弃用警告,代码片段如下:
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
的明显范围。我该怎么做呢?
答案 0 :(得分:1)
这应该有效:
NSTextInputContext* context = [NSTextInputContext currentInputContext];
id<NSTextInputClient> client = context.client;
if (client && client.markedRange.length > 0) return NO;
客户端通常是具有焦点的文本视图,因此是关键窗口的第一个响应者。所以,你可以绕过这种方式,直接进入文本视图。