cocoa - 如何更改 NSSegmentedControl 的高度

标签 cocoa nscell nssegmentedcontrol

我正在尝试增加 NSSegmentedControl 的高度,使其超出 25px“常规”控件大小。我对 NSSegmentedCell 进行了子类化,我知道我有 2 种方法可以使用。

- (void)drawSegment:(NSInteger)segment
            inFrame:(NSRect)frame
           withView:(NSView *)controlView

- (void)drawWithFrame:(NSRect)frame
               inView:(NSView *)view

如果我在 IB 中放置分段控件,则在我的 NSSegmentedCell 子类中重写上述方法。异常(exception)的是,传入的框架和 View 基于 IB 中分段控件的高度。所以,我不知道从这里该去哪里。

我是否还必须继承 NSSegmentedControl 并在所需的高度绘制自己的控件?然后使用 NSSegmentedCell 子类来处理段?

最佳答案

默认的NSSegmentedControl不允许您调整其绘制高度。为此,您必须对其(和 NSSegmentedCell)进行子类化,并用您自己的函数覆盖其绘图函数。

关于cocoa - 如何更改 NSSegmentedControl 的高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25289928/

相关文章:

cocoa - 可以使用不同的 bundle ID 启动同一 cocoa 应用程序的两个实例吗?

swift - 在自定义单元格中显示进度指示器的 Swift macOS 应用程序中,是否可以同步所有指示器的旋转?

iphone - 增加 UIButton 高亮时的触摸效果半径

cocoa - NSTableHeaderCell 检测鼠标按下?

cocoa - 将 NSSegmentedControl 与 CoreData 结合使用

objective-c - 如何在垃圾收集的 Obj-C 中保留窗口而不保留指向它的指针?

cocoa - 让 NSFormatter 持续验证 NSTextFieldCell

objective-c - 将单个 NSCell 绑定(bind)到多个值

cocoa - NSSegmentedControl 以编程方式突出显示段

xcode - 如何像Xcode一样绘制带有蓝色色调的分段控件?