在具有可編輯列順序的 NSTableView 中獲取列 (Getting a column in an NSTableView with editable column order)


問題描述

在具有可編輯列順序的 NSTableView 中獲取列 (Getting a column in an NSTableView with editable column order)

我有一個 NSTableView,如果用戶單擊“ClickMe”列,我希望收到通知。我將整個表格視圖鏈接到一個可以提取 clickedColumn: 的方法,但我得到的是一個絕對數字,而不是對“ClickMe”列的引用(它可能已被移動到另一個地方)。

我當然可以編寫自己的搜索算法來查看列 X 是否實際上是“Clickme”列,但這不會很優雅。有沒有辦法正確識別列並以編程方式接收該 ID?


參考解法

方法 1:

What about querying NSTableView's columnAtPoint: in your table views mouseDown: or mouseUp: method?

方法 2:

I found a way to do my own search in a fairly fast way, but I still have a feeling I am putting too much effort in this:

First, set the Identifier of the desired column in the Interface Builder to "ClickMeColumn". Then:

NSInteger cmColumn = [tableView columnWithIdentifier:@"ClickMeColumn"];
if ( [tableView clickedColumn] == cmColumn )
      NSLog(@"Clicked me!");

I am looking for something along the lines of [tableView clickedColumnIdentifier].

方法 3:

Use any of the methods below. Called by the tableView's delegate on selection. You can extract the identifier and the title string from the relevant 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]);

}

From: https://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSTableView_Class

(by CarelinkziljawascodingCarelinkzuser899145)

參考文件

  1. Getting a column in an NSTableView with editable column order (CC BY‑SA 2.5/3.0/4.0)

#cocoa #nstablecolumn #cell #nstableview #macos






相關問題

為什麼 NSWindow 或 NSView 實例處理它自己的鍵事件,而不是它的委託? (Why does an NSWindow or NSView instance handle its own key events, and not its delegate?)

通過 IKImage 視圖預覽圖像 (Previewg images via IKImage View)

Gaya Jendela Kustom di Kakao (Custom Window Style in Cocoa)

Apakah NSURLConnections termasuk dalam model atau pengontrol saya? (Do NSURLConnections belong in my model or controller?)

Эквівалент ключа NMenuItem не працуе, калі меню схавана (NSMenuItem Key Equivalent not working when menu is hidden)

透明窗口中的圓形 NSView (Rounded NSView in a Transparent Window)

單元格中不可見的 UITextField 已將 userInteractionEnabled 設置為 No (UITextField in cell that is not visible has userInteractionEnabled set to No)

如何為自定義 NSImageRep 子類實現 -draw (How to implement -draw for custom NSImageRep subclass)

從 Objective-C 中的核心數據元素獲取和設置值? (Getting and Setting values from Core Data elements in Objective-C?)

來自 URL 編碼問題的 NSArray (NSArray from URL encoding problem)

停靠欄下的窗口化opengl遊戲中的雙光標 (Double cursor in windowed opengl game under dock)

在特定的 NSTableview 單元格中對角線繪製線條 (Draw Lines Diagonally in a particular NSTableview cell)







留言討論