我有一個基於視圖的NSTableView
。表中的每個視圖都有一個自定義文本字段。mouseDown:在NSTableView中的自定義NSTextField中
我想在用戶點擊表格視圖內的文本字段(標籤)時觸發一個動作(想象在每個表格單元格中有一個自定義動作的超鏈接)。
我創建了一個基本的NSTextField
子類來捕獲鼠標事件。但是,他們只會觸發第二次點擊,而不是第一次點擊。
我嘗試使用NSButton
,並立即着火。
這裏的自定義標籤的代碼:
@implementation HyperlinkTextField
- (void)mouseDown:(NSEvent *)theEvent {
NSLog(@"link mouse down");
}
- (void)mouseUp:(NSEvent *)theEvent {
NSLog(@"link mouse up");
}
- (BOOL)acceptsFirstResponder {
return YES;
}
- (BOOL)acceptsFirstMouse:(NSEvent *)theEvent {
return YES;
}
@end
謝謝,我會嘗試。一個問題:第一次點擊與NSButton一起工作(在這種情況下表格行未被選中)。有什麼辦法模仿這種行爲? – Mark 2012-03-24 08:52:41
可能有,但我不知道。我原以爲acceptFirstMouse和/或accepFirstResponder返回YES是可以做到的。 – rdelmar 2012-03-24 15:49:45
如果您想要使用按鈕獲得的行爲,爲什麼不使用按鈕?您可以關閉邊框,無論如何它看起來都像無邊界標籤。如果你想要一個邊框,你可以在NSBox中嵌入一個無邊界按鈕。 – rdelmar 2012-03-24 16:06:33