我使用菜单项将列文本字段设置为可编辑。这是我尝试过的,但根本没有响应(没有文本可编辑)。(我已登录,并调用了该方法,并且textfield为非空。)
- (IBAction)setEditable:(id)sender
{
NSInteger selectedRow = [_tableView selectedRow];
NSInteger selectedColumn = [_tableView selectedColumn];
NSTableCellView *selectedCell = [_tableView viewAtColumn:selectedColumn row:selectedRow makeIfNecessary:NO];
[selectedCell.textField setEditable:YES];
}这一定要用另一种方式做吗?textfield在IB中也被设置为可编辑,所以它可以通过双击它来工作,但是我也想要上下文菜单中的选项。
发布于 2014-11-26 00:52:55
一个文本字段是“可编辑的”,如果可以编辑它,那就是给它焦点。-setEditable:不启动编辑,考虑到您希望上面的代码与双击字段相同,这似乎就是您所认为的。它只是在文本字段上设置一个标志,该标志控制文本字段允许执行的操作。您可以使用-isEditable检查标志。
如果要启动编辑,则应使用以下方法将文本字段作为窗口的第一个响应程序:
if ([selectedCell.textField acceptsFirstResponder])
[_tableView.window makeFirstResponder:selectedCell.textField];如果您的操作方法可能在窗口不是键时被调用,您可能也希望首先执行[_tableView.window makeKeyAndOrderFront:self]。
https://stackoverflow.com/questions/27135936
复制相似问题