繁体   English   中英

编辑时禁止更新NSTableView

[英]Preventing updates to NSTableView while editing

我有一个NSTableView具有一列可编辑字段。 单元格编辑工作正常,我的委托例程可以获取更新,并可以根据需要对其执行操作。 问题在于,还有其他代码可根据计时器或异步(套接字)输入来更新表中的值。 在编辑过程中发生更新事件时,更新将覆盖用户输入。

我正在尝试使用委托方法来通过实例变量锁来阻止更新:

   - (BOOL)control:(NSControl *)control textShouldBeginEditing:(NSText *)fieldEditor;
{
    tableEditInProgress = YES;
    return YES;
}

- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
{
    tableEditInProgress = NO;
    return YES;
}

- (void)controlTextDidBeginEditing:(NSNotification *)aNotification
{
    tableEditInProgress = YES;
}

- (void)controlTextDidEndEditing:(NSNotification *)aNotification
{
    tableEditInProgress = NO;   
}

仅当用户在更新发生之前在字段中实际键入新文本时,这才似乎有效。 我希望一旦用户在字段中获得编辑光标(双击字段内容),就可以阻止更新。

我可能只是使用了错误的委托方法。

TIA

尝试抛弃所有这些东西,然后尝试以下方法:

如果要检查当前是否正在编辑表,请调用[tableView currentEditor]; 如果非零,则正在编辑表视图。 如果为零,则不被编辑。 那是:

BOOL tableEditInProgress = ([tableView currentEditor] != nil);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM