タイトルによれば、実際にはNSBrowserコントロールからボーダーを削除したいと考えています。親はNSViewとNSControlです。 NSBrowser自体には利用可能なメソッドがありません。また、親コントロールのメソッドもありません。これは完全に文書化されていないようです。NSBrowserからボーダーを削除する
ボーダーを削除する理由は、プログラムで別のビューにドッキングされているため、ビュー階層はすでに境界線があることを意味します。
アイデア?
タイトルによれば、実際にはNSBrowserコントロールからボーダーを削除したいと考えています。親はNSViewとNSControlです。 NSBrowser自体には利用可能なメソッドがありません。また、親コントロールのメソッドもありません。これは完全に文書化されていないようです。NSBrowserからボーダーを削除する
ボーダーを削除する理由は、プログラムで別のビューにドッキングされているため、ビュー階層はすでに境界線があることを意味します。
アイデア?
NSBrowserはNSBrowserCellを使用してインターフェイスを実装します。 NSCellから継承します。 NSCellは必要な方法を提供する必要があります。 NSCellのクラス参照から
は... の管理画面は 属性 - setBezeled: - isBezeled - setBordered: - isBordered - イソパーク - setControlTint: - controlTint - setBackgroundStyle: - backgroundStyle - interiorBackgroundStyleNSScrollView
の罫線を外します。
これは私が最初に調べたことです。利用可能なオプションはありません。ドキュメントには境界線列挙オプションが公開されていますが、境界線を設定する方法はありません。 – Kezzer
それは奇妙です... IBは間違いなくそれを行うことができます。私に見てみましょう。 –
私が知っている限り、 'NSBrowser'はAppKitのほとんどのスクロール可能なコンポーネントとは異なる設定をしています。スクロール・ビューに囲まれるのではなく(例えば 'NSTableView'のように)、独自の内部スクロール・ビューを提供します。 –
プレーンテキストをNSView
(IBの「カスタムビュー」)に埋め込み、ブラウザのフレームを、そのビューの境界からあらゆる方向に1ポイントだけ「始点」にします。含まれているビューは、境界線を除去するためにブラウザをクリップします。次に、ブラウザーを直接追加するのではなく、ビューを含むビューを周囲のビュー階層に配置します。
その他の回答は私のために働いていません。 NSBrowserの自動レイアウト制約の4つをすべて-1に設定してsuperview(囲むプレーンNSView)に設定することで、この回答を実装しました。チャンピオンのように動作します。 –
解決策を探している人にとっては、 NSBrowserはNSViewのサブクラスです。あなたは0にNSViewの層の境界線の幅を設定することができます。
(スウィフト)
self.layer?.borderWidth = 0
はい、私はNSViewのとNSControl – Kezzer