9

NSPopover に色を付ける方法はありますか? クールな色とサイズ変更可能なポップオーバーを備えた facetab などのアプリを見たことがありますが、これはどのように行われますか?

ガイド、ヒントはありますか?

ありがとう。

4

7 に答える 7

2

popover.contentViewController.viewカスタム背景描画を使用して のサブクラスとして設定しNSViewます (つまり、長方形をオーバーライドdrawRect:して、カスタム背景色で塗りつぶします)。

次に を設定しpopover.appearance = NSPopoverAppearanceHUDて、ビューの周囲のデフォルトの境界線を削除します。

ビューの周りにはまだ非常に細い境界線があることに注意してください。完全に削除したい場合は、MAAttachedWindowまたは同様のソリューションを使用することをお勧めします。

于 2013-09-29T06:29:38.947 に答える
0

代わりにMAAttachedWindowを使用できます。

于 2013-02-06T07:13:19.550 に答える
0

はいといいえ。残念ながらNSPopover、カスタマイズできるようには設計されていません。contentViewControllerの背後に追加の背景ビューを追加viewし、必要に応じて色付けまたはカスタマイズするためのいくつかの簡単なハックを使用できます。NSPopoverこの場合、一般的な境界線やテールと同じようにマスクされるカスタマイズ可能な背景を取得できます。

詳細については、NSPopover+MISSINGBackgroundViewこのアプローチを実装するカテゴリのコードを参照するか、このコードを CocoaPod ライブラリとして使用してください。

于 2015-05-21T07:36:33.847 に答える
0

のビュー コントローラのビューとしてサブクラス化NSViewして設定できます。NSPopover

于 2013-01-28T17:39:55.820 に答える
-4

これは、ポップオーバーの色を変更するために行ったことです。

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 クラス リファレンス- 開発者向けドキュメントで使用コードを提供してくれることを切に願っています。

于 2011-12-16T01:20:17.927 に答える