我有一個NSTableView
,我希望在用戶單擊「ClickMe」列時收到通知。我將整個表格視圖鏈接到一個可以提取clickedColumn:
的方法,但是我得到一個絕對編號,而不是對「ClickMe」列(可能已被移動到另一個地方)的引用。以可編輯的列順序獲取NSTableView中的列
我當然可以編程我自己的搜索算法,看看列X實際上是「Clickme」列,但這不會很優雅。有沒有辦法正確識別列,並以編程方式接收該ID?
我有一個NSTableView
,我希望在用戶單擊「ClickMe」列時收到通知。我將整個表格視圖鏈接到一個可以提取clickedColumn:
的方法,但是我得到一個絕對編號,而不是對「ClickMe」列(可能已被移動到另一個地方)的引用。以可編輯的列順序獲取NSTableView中的列
我當然可以編程我自己的搜索算法,看看列X實際上是「Clickme」列,但這不會很優雅。有沒有辦法正確識別列,並以編程方式接收該ID?
我找到了一種方法做我自己在一個相當快速的方式搜索,但我仍然有一種感覺,我把太多精力在這:
首先,設置所需的列的標識符的接口生成器到「ClickMeColumn」。然後:
NSInteger cmColumn = [tableView columnWithIdentifier:@"ClickMeColumn"];
if ([tableView clickedColumn] == cmColumn)
NSLog(@"Clicked me!");
我要找沿[tableView clickedColumnIdentifier]
線的東西。
如何查詢NSTableView的columnAtPoint:在您的表視圖mouseDown:或mouseUp:方法?
使用下面的任何方法。被選中的tableView的委託調用。您可以從相關的tableColumn中提取標識符和標題字符串。
- (void)tableView:(NSTableView *)tableView didClickTableColumn:(NSTableColumn *)tableColumn {
NSLog(@"tableView:didClickTableColumn: %@, titleString: %@", [tableColumn identifier], [[tableColumn headerCell] stringValue]);
}
- (void)tableView:(NSTableView *)tableView mouseDownInHeaderOfTableColumn:(NSTableColumn *)tableColumn {
NSLog(@"tableView:mouseDownInHeaderOfTableColumn: %@, titleString: %@", [tableColumn identifier], [[tableColumn headerCell] stringValue]);
}
不,我不想要一個指數,我想一個UID。因爲#6列可能會或可能不是正確的,這取決於我的「ClickMe」列的位置。例如:如果你想訪問一個人姓氏的列,但用戶將該列從第一個位置移動到表中的最後一個位置,那麼索引1不會再給我姓,對不對? – markjs
什麼是桌面鼠標上移/鼠標下降的方法? –