9

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

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

有任何想法吗?

4

5 回答 5

3

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

于 2014-09-07T20:25:42.613 回答
2

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

来自 NSCell 类参考... 管理显示属性 – setBezeled: – isBezeled – setBordered: – isBordered – isOpaque – setControlTint: – controlTint – setBackgroundStyle: – backgroundStyle – internalBackgroundStyle

于 2013-01-18T15:38:19.973 回答
1

删除NSScrollView它所包含的边框。

于 2013-02-11T18:35:43.933 回答
1

现有的答案都不适合我。

  • 嵌入NSView看起来像是一个可以接受的解决方法,但它会剪辑浏览器。
  • NSScrollView不是 的超类NSBrowser
  • 此边框不使用图层,它是nil.
  • NSBrowserCellNSBrowser与的边界无关。

使用borderType: NSBorderType属性(与其他一些类相同),在 Interface Builder 中设置。在身份检查器中(⌘</kbd>+⎇</kbd>+3) add to User Defined Runtime Attributes:

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

于 2019-08-29T10:11:39.233 回答
0

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

(迅速)

self.layer?.borderWidth = 0
于 2016-08-28T13:13:41.733 回答