首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NSTableCellView setEditable

NSTableCellView setEditable
EN

Stack Overflow用户
提问于 2014-11-25 20:19:41
回答 1查看 433关注 0票数 1

我使用菜单项将列文本字段设置为可编辑。这是我尝试过的,但根本没有响应(没有文本可编辑)。(我已登录,并调用了该方法,并且textfield为非空。)

代码语言:javascript
复制
- (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中也被设置为可编辑,所以它可以通过双击它来工作,但是我也想要上下文菜单中的选项。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-26 00:52:55

一个文本字段是“可编辑的”,如果可以编辑它,那就是给它焦点。-setEditable:不启动编辑,考虑到您希望上面的代码与双击字段相同,这似乎就是您所认为的。它只是在文本字段上设置一个标志,该标志控制文本字段允许执行的操作。您可以使用-isEditable检查标志。

如果要启动编辑,则应使用以下方法将文本字段作为窗口的第一个响应程序:

代码语言:javascript
复制
if ([selectedCell.textField acceptsFirstResponder])
    [_tableView.window makeFirstResponder:selectedCell.textField];

如果您的操作方法可能在窗口不是键时被调用,您可能也希望首先执行[_tableView.window makeKeyAndOrderFront:self]

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27135936

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档