从NSBrowser中删除边框

时间:2013-01-18 09:38:28

标签: cocoa nsbrowser

正如标题所说,我实际上想要从NSBrowser控件中删除边框。父母是NSView和NSControl。 NSBrowser本身没有可用的方法,父控件也没有。这个似乎完全没有记录。

关于删除边框的原因,因为它以编程方式停靠在另一个视图中,因此视图层次结构意味着已经存在边框。

有什么想法吗?

5 个答案:

答案 0 :(得分:2)

NSBrowser使用NSBrowserCell来实现其接口。 这继承自NSCell。 NSCell应该提供您需要的方法。

来自NSCell类引用... 管理显示属性 - setBezeled: - isBezeled - setBordered: - isBordered - 是不透明的 - setControlTint: - controlTint - setBackgroundStyle: - backgroundStyle - interiorBackgroundStyle

答案 1 :(得分:2)

只需将其嵌入普通NSView(IB中的“自定义视图”),并使浏览器的框架从包含视图边界的所有方向上“开始”1点。包含视图将剪切浏览器以消除边框。然后将包含视图的视图放入周围的视图层次结构中,而不是直接添加浏览器。

答案 2 :(得分:1)

删除它所包含的NSScrollView上的边框。

答案 3 :(得分:0)

对于那些仍在寻找解决方案的人。 NSBrowser是NSView的子类。您可以将NSView图层的边框宽度设置为0:

(SWIFT)

self.layer?.borderWidth = 0

答案 4 :(得分:0)

现有的答案都不适合我。

  • 嵌入NSView中看起来是可以接受的解决方法,但是会限制浏览器。
  • NSScrollView不是NSBrowser的超类。
  • 该边界未使用图层,它是nil
  • NSBrowserCellNSBrowser的边界无关。

使用borderType: NSBorderType属性(与某些其他类相同),在Interface Builder中对其进行设置。在身份检查器( + + 3 )中,添加到用户定义的运行时属性:

关键路径:borderType
类型:Number
值:0(对应于NSBorderType.noBorder