作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为我的应用程序创建一个自定义开关,其中我为可能的状态(打开、关闭、鼠标按下)提供三个图像。整个外观包含在图像中,因此我不希望 Cocoa 在鼠标按下期间自行突出显示(变暗)按钮。
目前,我已经创建了一个 NSButtonCell 子类,将 NSButtonTypeMomentaryChange 的斜角按钮拖到我的 View 中,并将按钮单元类类型自定义设置为我的子类。子类只是实现 awakeFromNib 来尝试设置一些所需的行为:
- (void)awakeFromNib
{
[self setShowsStateBy:NSContentsCellMask];
[self setHighlightsBy:NSContentsCellMask];
}
我认为(根据文档)会禁用按钮的鼠标按下变暗。事实并非如此。
这就是我的立场,现在我有两个问题:
最佳答案
将按钮类型设置为开/关。对其单元格进行子类化。写出这两个方法:
- (void)drawWithFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
if ([self state])
{
[onStateImage drawInRect:cellFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
}
else
{
[offStateImage drawInRect:cellFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
}
}
- (void)highlight:(BOOL)flag withFrame:(NSRect)cellFrame inView:(NSView *)controlView
{
if (flag){
[downStateImage drawInRect:cellFrame fromRect:NSZeroRect operation:NSCompositeSourceOver fraction:1.0];
}
}
关于cocoa - 使用图像和突出显示自定义 NSButtonCell,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6957115/
有没有一种方法可以“标记”对象的属性,使它们在反射中“突出”? 例如: class A { int aa, b; string s1, s2; public int AA
我是一名优秀的程序员,十分优秀!