我从一开始就对 iOS 进行了编程,但对 Cocoa 很陌生,所以请温柔一点!
我有一个 NSOutlineView 并且已经从主菜单中实现了剪切/复制/粘贴来剪切/复制/粘贴选定的行。
现在我还想允许用户在 NSTextFieldCell 中选择一些文本,复制它,将光标放在不同的 NSTextFieldCell 中,然后粘贴它。
通过在以下位置设置 BOOL,我设法发现用户正在单元格内工作:
- (BOOL)outlineView:(NSOutlineView *)anOutlineView shouldEditTableColumn:(NSTableColumn*)aTableColumn item:(id)anItem
并在我的编辑结束通知中取消设置,设置如下:
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(editingDidEnd:)
name:NSControlTextDidEndEditingNotification object:nil];
这似乎工作正常。
然后,在我的剪切、复制、粘贴操作中,我可以检查 BOOL 并做正确的事情 - 如果用户不在单元格内工作,则复制整行,如果用户在单元格内工作,则复制文本。
但是,当用户在单元格内工作时,我只是不知道如何获得我需要的东西。
我考虑过使用 NSText cut:, copy: paste: 方法,因为它们应该为我处理选择。但我认为我在任何地方都没有 NSText 对象!
或者,我需要能够从我的 NSTextFieldCell 中读取选定的文本,保存它,然后发现要粘贴到的单元格中的插入点,然后粘贴。
还是我缺少更好的内置支持?
任何帮助都非常感激 - 当然是特定的解决方案,但也链接到 Cocoa 中文本/单元格/字段处理的背景引物。