关于macos:NSTextField isFirstResponder

NSTextField isFirstResponder

我正在尝试执行我认为在Cocoa(Mac OSX 10.8)中相当简单的任务,该任务是将剪贴板中的字符串粘贴到NSTextField中。

我知道如何访问当前保存在剪贴板中的字符串,但是目前的问题是我无法确定UI的3个文本字段中的哪个已被选择。

尝试1:

在执行"粘贴"命令时,请从iOS开发人员询问每个文本字段"您是否选择了?",我将执行类似[aTextField isFirstResponder]的操作,但是该方法在NSTextField上不存在,我无法找到一个等效项。

尝试2:

选择3个NSTextField中的任何一个时,将该TF存储为"活动"字段,并且当用户选择粘贴时,将字符串粘贴到其中。这里的问题是,如果我将控制器设置为文本字段的委托,并实现:

1
-(void)controlTextDidBeginEditing:(NSNotification *)obj {}

仅在用户编辑文本时才调用它,而不是在他们仅选择文本时调用(通常在用户想要粘贴到顶部时会发生这种情况),因此在这种方法中,我仍然不知道哪个文本当前选择了字段,因此选择了粘贴文本的位置。

有人知道Mac OSX应该如何处理这个简单的任务吗?我要做的就是允许用户将剪贴板中的某些文本粘贴到文本字段中!?


您可以使用-[NSWindow firstResponder]从窗口中找到第一响应者。然后,您可以将其发送给paste:操作。这就是"编辑"菜单中标准粘贴项的工作方式。