2013-01-18 7 views
9

タイトルによれば、実際にはNSBrowserコントロールからボーダーを削除したいと考えています。親はNSViewとNSControlです。 NSBrowser自体には利用可能なメソッドがありません。また、親コントロールのメソッドもありません。これは完全に文書化されていないようです。NSBrowserからボーダーを削除する

ボーダーを削除する理由は、プログラムで別のビューにドッキングされているため、ビュー階層はすでに境界線があることを意味します。

アイデア?

+0

はい、私はNSViewのとNSControl – Kezzer

答えて

2

NSBrowserはNSBrowserCellを使用してインターフェイスを実装します。 NSCellから継承します。 NSCellは必要な方法を提供する必要があります。 NSCellのクラス参照から

は... の管理画面は 属性 - setBezeled: - isBezeled - setBordered: - isBordered - イソパーク - setControlTint: - controlTint - setBackgroundStyle: - backgroundStyle - interiorBackgroundStyle

+0

を述べ、なぜそれゆえ、私は私は1つということを逃したかどうかはわかりません。私はすぐにこれを試してみます、歓声! – Kezzer

+0

私は運がなくてもバリエーションを試しました。 setBorderedを使うと何もしないようです。誰もこれをやっていないようだ。私は奇妙だと思う。 – Kezzer

1

NSScrollViewの罫線を外します。

+0

これは私が最初に調べたことです。利用可能なオプションはありません。ドキュメントには境界線列挙オプションが公開されていますが、境界線を設定する方法はありません。 – Kezzer

+0

それは奇妙です... IBは間違いなくそれを行うことができます。私に見てみましょう。 –

+0

私が知っている限り、 'NSBrowser'はAppKitのほとんどのスクロール可能なコンポーネントとは異なる設定をしています。スクロール・ビューに囲まれるのではなく(例えば 'NSTableView'のように)、独自の内部スクロール・ビューを提供します。 –

1

プレーンテキストをNSView(IBの「カスタムビュー」)に埋め込み、ブラウザのフレームを、そのビューの境界からあらゆる方向に1ポイントだけ「始点」にします。含まれているビューは、境界線を除去するためにブラウザをクリップします。次に、ブラウザーを直接追加するのではなく、ビューを含むビューを周囲のビュー階層に配置します。

+0

その他の回答は私のために働いていません。 NSBrowserの自動レイアウト制約の4つをすべて-1に設定してsuperview(囲むプレーンNSView)に設定することで、この回答を実装しました。チャンピオンのように動作します。 –

0

解決策を探している人にとっては、 NSBrowserはNSViewのサブクラスです。あなたは0にNSViewの層の境界線の幅を設定することができます。

(スウィフト)

self.layer?.borderWidth = 0 
関連する問題