2012-08-23 88 views

回答

3

使用KVO通知解决了同样的问题。

设置你的表委托作为NSTableColumn宽度观察员:

[column addObserver:self forKeyPath:@"width" options:0 context:nil]; 

选项参数可以调节,以获得通知的实际变化发生之前。

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context 
{ 
    NSInteger resizedColumn = tableView.headerView.resizedColumn; 
    if (resizedColumn != -1) 
    { 
     if (object == column && 
      object == [tableView.tableColumns objectAtIndex:resizedColumn]) 
     { 
      // User is resizing column 
     } 
    } 
} 
+0

不错的解决方案。适合我。 OP应该接受。 –

+0

好东西!如果您删除该列,请不要忘记删除观察者 –

0

使用国际志愿者组织,由@pointum作品表示:

当宽度变化然后得到通知。如果您遇到与取消注册观察者相关的麻烦,您可以执行我实际完成的操作: NSTableColumn的子类并覆盖Width参数的setter,并从那里发送通知。

相关问题