NSPopover に色を付ける方法はありますか? クールな色とサイズ変更可能なポップオーバーを備えた facetab などのアプリを見たことがありますが、これはどのように行われますか?
ガイド、ヒントはありますか?
ありがとう。
NSPopover に色を付ける方法はありますか? クールな色とサイズ変更可能なポップオーバーを備えた facetab などのアプリを見たことがありますが、これはどのように行われますか?
ガイド、ヒントはありますか?
ありがとう。
popover.contentViewController.view
カスタム背景描画を使用して のサブクラスとして設定しNSView
ます (つまり、長方形をオーバーライドdrawRect:
して、カスタム背景色で塗りつぶします)。
次に を設定しpopover.appearance = NSPopoverAppearanceHUD
て、ビューの周囲のデフォルトの境界線を削除します。
ビューの周りにはまだ非常に細い境界線があることに注意してください。完全に削除したい場合は、MAAttachedWindowまたは同様のソリューションを使用することをお勧めします。
代わりにMAAttachedWindowを使用できます。
はいといいえ。残念ながらNSPopover
、カスタマイズできるようには設計されていません。contentViewController
の背後に追加の背景ビューを追加view
し、必要に応じて色付けまたはカスタマイズするためのいくつかの簡単なハックを使用できます。NSPopover
この場合、一般的な境界線やテールと同じようにマスクされるカスタマイズ可能な背景を取得できます。
詳細については、NSPopover+MISSINGBackgroundView
このアプローチを実装するカテゴリのコードを参照するか、このコードを CocoaPod ライブラリとして使用してください。
のビュー コントローラのビューとしてサブクラス化NSView
して設定できます。NSPopover
これは、ポップオーバーの色を変更するために行ったことです。
NSPopover を適切に定義したと仮定します。
//AppController.h
#import <Foundation/Foundation.h>
@interface AppController : NSObject
@property (weak) IBOutlet NSPopover errorPopover;
// whatever else you have ...
@end
//AppController.m
#import "AppController.h"
@implementation AppController
@synthesize errorPopover = _errorPopover;
// whatever else you have ...
-(IBAction)doSomethingThatCallsPopover:(id)sender {
_errorPopover.appearance = NSPopoverAppearanceHUD; //set color of error popup
[[self errorPopover] showRelativeToRect:[sender bounds] ofView:sender preferredEdge:NSMaxXEdge];
}
@end
NSPopover クラス リファレンス- 開発者向けドキュメントで使用コードを提供してくれることを切に願っています。