对NSTableHeaderCell / NSTableHeaderView进行子类化以生成透明标头

时间:2013-03-24 19:53:46

标签: cocoa nstableheaderview

如果以前曾经问过这个问题,请给我,但我似乎找不到任何可以给我想要达到预期行为的问题答案。

我主要是我想要实现的行为,字体样式和颜色,标题高度等。但是,我似乎无法让标题变得透明。我一直试图通过继承NSTableHeaderCell并覆盖- (void)drawWithFrame:(NSRect)cellFrame highlighted:(BOOL)isHighlighted inView:(NSView *)view;

来做到这一点
[[NSColor colorWithDeviceWhite:1.0 alpha:0.75] set];
NSRectFillUsingOperation(fillRect, NSCompositeSourceOver);

我想要实现的目标是screenshot。这是我的第一个问题,我不得不主持图像,因为我没有足够的积分在我的问题中包含图像。

如果有人能向我解释一下如何实现这种风格的标题,或者指出我会感激不尽的文档。

2 个答案:

答案 0 :(得分:0)

这不是标题视图,而是浮动组行。注意滚动条的位置:它位于“标题”旁边而不是下方。

查找TableViewPlayground示例项目,特别是“Complex Table View”示例。 您可以在表格中创建一个浮动组行,并使其外观和行为类似于标题视图(即显示您自己的排序指示符并接受点击以切换排序)。

答案 1 :(得分:0)

使用以下作品:

目标-C:

NSColor(deviceWhite: 1.0, alpha: 0.65).setFill()
NSRectFill(fillRect)

或者在Swift中:

    0  CoreFoundation!__exceptionPreprocess + 0x7c
    1  libobjc.A.dylib!objc_exception_throw + 0x34
    2  CoreFoundation!-[NSObject(NSObject) doesNotRecognizeSelector:] + 0xd0
    3  CoreFoundation!___forwarding___ + 0x364[enter image description here][1]
    4  CoreFoundation!_CF_forwarding_prep_0 + 0x58
    5  yyfe!__70-[InvestModel getOpenAccountRewardWithPhoneNum:identifyCode:complete:]_block_invoke [InvestModel.m : 104 + 0x4]
    6  libdispatch.dylib!_dispatch_call_block_and_release + 0x14
    7  libdispatch.dylib!_dispatch_client_callout + 0xc
    8  libdispatch.dylib!_dispatch_main_queue_callback_4CF + 0x730
    9  CoreFoundation!__CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 0x8
相关问题