3

ビューベースのNSTableViewがあり、セルにはテキストフィールドや編集フィールドなどの多数のコントロールが含まれています。たとえば、テキストフィールドの編集を開始するために、ユーザーがセル内のコントロールをクリックしようとすると、クリックの主な目的は無視され、セルが選択されます。次に、本来意図されたアクションを実行するためにもう一度クリックする必要があります。このクリックでさえ、考慮される前に遅延が発生する可能性があります。

この問題を回避し、行を選択してマウスイベントを一度にコントロールに転送するにはどうすればよいですか?

4

2 に答える 2

19

NSTableViewをサブクラス化することで、この問題を解決しました。

@implementation QuickResponseTableView

- (BOOL)validateProposedFirstResponder:(NSResponder *)responder forEvent:(NSEvent *)event
{
    // This allows the user to click on controls within a cell withough first having to select the cell row
    return YES;
}

@end
于 2012-11-27T07:38:36.933 に答える
7

同じ問題がありました。多くの苦労の末、私がIBのオプションNoneのデフォルトRegular(他のオプションはSource List)に対して選択したとき、それは魔法のように機能しました!Highlight受け入れられた答えはより具体的であるように見えますが、これと比較して少しハッキーです。

于 2013-03-26T10:07:56.417 に答える