Как уже говорилось, NSTabView не имеет метода setBackgroundColor и подкласса NSTabView, а использование drawRect для управления им больше не работает - поскольку оно не отображает верхние 10%, бит чуть ниже сегментированного элемента управления кнопка.NSTabView с цветным фоном
Теперь я немного удивлен количеством работ, которые я должен был решить; см
- код: https://github.com/dirkx/CustomizableTabView/blob/master/CustomizableTabView/CustomizableTabView.m
и мне интересно, если я пошел по неверному пути. А как это сделать лучше & проще:
NSSegmentStyleTexturedSquare, кажется, дают мне полупрозрачный сегментирован управления. Это означает, что мне нужно сделать дополнительную работу, чтобы скрыть любые линии без рамки (строка 240, 253).
есть ли лучший способ сделать это? То есть отрицать его прозрачность?
или есть способ, которым я могу использовать фактическую/исходную сегментированную кнопку выбора?
Я считаю, что цвета мне нужно - как и [NSColor windowBackgroundColour] не установлено что-то полезное (то есть, что один прозрачный) - так что сейчас я жёстко их (строки 87, 94).
- Есть ли лучший способ сделать это?
Я нахожу, что мне нужна лодка пушистых методов, чтобы синхронизировать ситуацию (строка 128, 134 и т. Д.).
- этого можно избежать?
Я нахожу, что имитация умения при перемасштабировании означает, что мне нужно постоянно следить за разделенным блоком управления и удалять/изменять его размер. И даже тогда - это не так хорошо, как оригинал
- есть ли лучший способ сделать это, чем строка 157 - то есть услышать об изменении размера? Вместо того, чтобы делать это все время?
СегментКонтроль исчезает, когда фокус удаляется из окна - в отличие от реального Маккой.
- Можно ли легко предотвратить это? есть ли дешевый способ отслеживать это?
Или это неправильный подход - и я должен сосредоточиться только на прозрачном отверстии здесь и позволить NSTabViewItem нарисовать фон? Но в любом случае - тогда у меня все еще есть проблема с полем Segemented COntrol - или есть ли способ сделать это снова по умолчанию.
- при попытке это - я застреваю на верхних 20-30 пикселей втягиваются в «реальное» окно цвета фона - который является «прозрачным», - и, следовательно, цвет не будет работать весь путь к вершине или за панелью сегментов и до панели, но вместо этого остановите примерно 8 пикселей ниже нижней части элементов управления сегмента.
Обратная связь оценили - как это чувствует себя так далеко/неоптимальным для таких простых вещей - Спасибо много. Брауни указывает на взлом/форвардинг кода github :) :) :) Как строка кода работает более тысячи слов.
Dw.
Хмм - пробовал (см.выше ссылку GitHub, https://github.com/dirkx/CustomizableTabView/commit/bfbd5aeecaf13c65611d221a31cb644ed48108d4#diff-7d6a9b4a9a691023219e9dc3082910e6) - настройки для plain.XXX. И никакого печенья. –
Что было drawsBackground set to? Был ли тип вида табуляции NSNoTabsNoBorder? Вы уверены, что NIB был даже загружен временем, когда была вызвана applicationDidFinishLaunching? – dgatwood
Конечно (и перемещение кода в setColour не меняет поведения). Проблема по-прежнему заключается в том, что фон «ускользает» от содержимого содержимого табуляции. –