2016-11-21 57 views
0

我一直在为我的Cocoa应用程序开发自定义用户界面。 通过浏览互联网,我已经学会了如何在MacOSX上继承大量的UI对象。在很多情况下,我可以让外观按我想要的方式工作。NSComboBoxCell子类的例子?

我正在使用的最后一个UI元素是NSComboBoxCell。它似乎是一个NSTextFieldCellNSButtonCell连接。我想要覆盖的部分是NSButtonCell,我相信这是绘制“箭头按钮”。有没有人曾经这样做过,如果是这样,使用什么方法,以便我可以改变它的外观?

有什么方法可以知道在哪里画NSButtonCell? (我可以覆盖并安装我自己的NSButtonCell?)

谢谢!

+0

从可可-dev邮件列表: _James沃克写道: 在我NSComboBoxCell子,我想通了,这里的 “按钮” 部分应该如下:_ '的NSRect drawingRect = [自我drawingRectForBounds: cellFrame]; NSRect titleBounds = [self titleRectForBounds:drawingRect]; 的NSRect buttonBounds = NSMakeRect(NSMaxX(titleBounds), \t NSMinY(drawingRect), \t NSMaxX(drawingRect) - NSMaxX(titleBounds), \t NSHeight(drawingRect));' _And然后我画我自己的按钮的内容。 _ 这似乎适用于我。谢谢詹姆斯! –

回答

0

从可可-dev邮件列表:

詹姆斯·沃克写道: 在我NSComboBoxCell子,我想通了,这里的“按钮”部分应该如下:

NSRect drawingRect = [self drawingRectForBounds: cellFrame]; 
NSRect titleBounds = [self titleRectForBounds: drawingRect]; 
NSRect buttonBounds = NSMakeRect(NSMaxX(titleBounds), NSMinY(drawingRect), NSMaxX(drawingRect) - NSMaxX(titleBounds), NSHeight(drawingRect)); 

然后我画了我自己的按钮内容。这似乎对我有用。

谢谢詹姆斯!