將委託-viewWillMoveToWindow添加到包含該表的視圖子類中。在這裏我使用了名爲reloadTable
的BOOL
。 NSTrackingArea是你的問題
- (void) viewWillMoveToWindow:(NSWindow *)newWindow
{
// Setup a new tracking area when the view is added to the window.
NSTrackingArea* trackingArea = [[NSTrackingArea alloc] initWithRect:[yourTable frame]
options: (NSTrackingMouseEnteredAndExited |
NSTrackingActiveAlways|NSTrackingEnabledDuringMouseDrag) owner:self userInfo:nil];
[self addTrackingArea:trackingArea];
}
- (void) mouseEntered:(NSEvent*)theEvent {
reloadTable=YES;
NSLog(@"enter %@",theEvent);
}
- (void) mouseExited:(NSEvent*)theEvent {
reloadTable=YES;
}
然後用它在你的NSTableViewDataSource
方法
只是維持其觀察時手動 –
我怎麼能以編程方式檢查用戶是否懸停在NSTableView的你的表視圖刷新標誌的答案嗎?每當我將curosr放在tableView上時,dataCellForTableColumn都會被調用。 – york
你現在有工作嗎? –