簡體   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