Я пытаюсь выделить строку в NSTableView
, используя CALayer
. Я хотел бы, чтобы при щелчке по определенной строке окружающие строки стали бледнее, чтобы выбранная строка была четко сфокусирована и выделена.
Я не уверен, как лучше всего добиться этого, но сначала я подумал о том, чтобы сначала включить мой NSTableView
в пользовательский вид и позволить слою вида обладать способностями CALayer
. Затем я мог бы отслеживать местоположение мыши в этом представлении, и если пользователь щелкает, я знаю местоположение щелчка относительно [layer bounds]
и могу выделить области выше и ниже (например, 10 точек), где пользователь щелкнул на всю ширину. Тем не менее, пользователь может не щелкнуть идеально в середине строки, что создаст перекошенную область выделения.
Мои вопросы: есть ли лучший способ сделать это? Может ли NSTableView
сделать CALayer
простым способом, который позволяет мне выделить определенную строку, поместив градиент на оставшиеся видимые строки? Можно ли избежать фона пользовательского вида?