[英]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.