0

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

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

尝试1:

执行“粘贴”命令时,询问每个文本字段“你被选中了吗?”,来自 iOS 开发人员,我会这样做 [aTextField isFirstResponder],但 NSTextField 上不存在此方法,我找不到等价的.

尝试2:

When any of the 3 NSTextFields are selected, store that TF as the 'active' field, and when the user selects paste, paste the string in there. 这里的问题是,如果我将控制器设置为文本字段的委托,并实现:

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

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

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

4

1 回答 1

0

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

于 2013-07-01T03:25:32.900 回答