2010-09-26 4 views

ответ

63

Сделайте свою кнопку типа NSMomentaryChangeButton.

[myBtn setButtonType:NSMomentaryChangeButton]; 

Если вы используете NSMomentaryPushInButton, то вы можете получить серый прямоугольник над кнопкой, когда клик.

+0

А что еще? Не могли бы вы добавить дополнительную информацию. Проверьте этот вопрос [metaSO] (http://meta.stackexchange.com/questions/7656/how-do-i-write-a-good-answer-to-a-question) и [Jon Skeet: Coding Blog] (http://msmvps.com/blogs/jon_skeet/archive/2009/02/17/answering-technical-questions-helpfully.aspx) о том, как дать правильный ответ. – Yaroslav

+1

Отредактировал свой ответ. Нет ничего более. –

+8

Это сработало для меня. – arooo

12

Вы можете отрегулировать это, изменив маску состояния. Для этого проверьте свойства highlightsBy: и showsStateBy:NSButtonCell - они предназначены для установки эффекта нажатия и отображения эффекта соответственно. Применимые константы для этих методов приведены в NSCell reference page.

+4

Я долго искал флаги. Итак, вот решение в качестве дополнения (thx к Sean Rich очень много для этой помощи): [self.button.cell setShowsStateBy: NSPushInCellMask]; [self.button.cell setHighlightsBy: NSContentsCellMask]; если вы измените BOTH-маски, будет отображаться только ваша графика, как указано в IB. – JackPearse

+0

Это сделало мой день. Благодаря! – Stream

+0

Спасибо Шон, повел меня в правильное направление! – ixany

0

Если вы используете NSBox, убедитесь, что ваша кнопка внутри NSBox находится в иерархии. Затем используйте «мгновенное нажатие» в качестве типа вашей кнопки. При нажатии кнопки будет тускло, но границы не будет.

Когда я использовал NSBox с NSButton на том же уровне иерархии, я бы увидел границу при нажатии.