gpt4 book ai didi

cocoa - 编辑时防止更新 NSTableView

转载 作者:行者123 更新时间:2023-12-03 17:25:20 25 4
gpt4 key购买 nike

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

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

   - (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;
}

只有当用户在更新发生之前在字段中实际键入新文本时,这似乎才起作用。我希望用户在字段中获得编辑光标(双击字段内容)后立即阻止更新。

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

TIA

最佳答案

尝试放弃所有这些东西,然后尝试这个:

当你想检查表当前是否正在编辑时,调用[tableView currentEditor];如果它非nil,则 TableView 正在编辑。如果为零,则不会被编辑。即:

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

关于cocoa - 编辑时防止更新 NSTableView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6928696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com