簡體   English   中英

覆蓋keyDown:在NSTableView類別中禁用箭頭鍵處理

[英]Overriding keyDown: in an NSTableView category disables arrow key handling

我有一個NSTableView ,它的默認行為有一些問題。

如果我重寫了類別中的keyDown:方法,如下所示:

- (void) keyDown:(NSEvent *)event {
    [super keyDown:event];
}

我無法再使用鍵盤上的箭頭鍵更改行選擇。 這是為什么?

在NSTableView的類別中。

NSTableView類別中, super是指NSTableView的超類( NSControl ),而不是像 NSTableView那樣是指NSTableView NSControl事件傳遞給keyDown:NSControl版本,該版本對表視圖一無所知,並且無法以所需方式處理箭頭鍵。

如果您覆蓋類別中的方法,則無法調用原始方法。 在框架類上執行此操作絕不是一個好主意(您的源不可用)。 使用子類。

cf. 在目標C類別中使用超級嗎? 並且在類別中調用super是否與在子類中調用super相同?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM