NSTextField isFirstResponder
Posted
技术标签:
【中文标题】NSTextField isFirstResponder【英文标题】: 【发布时间】:2013-06-30 17:07:38 【问题描述】:我正在尝试在 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 上完成这个简单的任务?我要做的就是允许用户将剪贴板中的一些文本粘贴到文本字段中!?
【问题讨论】:
【参考方案1】:您可以使用-[NSWindow firstResponder]
从窗口中找到第一响应者。然后您可以向其发送paste:
操作。这就是编辑菜单中标准粘贴项的工作原理。
【讨论】:
以上是关于NSTextField isFirstResponder的主要内容,如果未能解决你的问题,请参考以下文章
根据 Font/Size 改变 NSTextField 的高度