- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我想制作一个与此类似的 NSPopover:
所以我想覆盖绘图。
很遗憾,我没有在 Apple 文档中找到任何内容。但是,我确实使用类转储找到了以下私有(private)类:
@interface NSPopoverFrame : NSView
{
const void *_themeX;
long long _popoverAppearance;
NSImage *_dragImage;
unsigned long long _anchorEdge;
struct CGSize _anchorSize;
CDStruct_3c058996 _contentInset;
struct CGPoint _anchorPoint;
unsigned long long _previousAnchorEdge;
struct CGPoint _previousAnchorPoint;
unsigned int _windowFilter;
struct {
unsigned int useDragWindowAppearance:1;
unsigned int hasActiveShadow:1;
unsigned int hasShadow:1;
unsigned int invalidateShadow:1;
unsigned int hasWindowBackgroundBlur:1;
unsigned int shouldBlurBackground:1;
unsigned int shouldInsetForAnchor:1;
unsigned int doingSolidFillHack:1;
} _flags;
}
+ (struct CGRect)contentRectForFrameRect:(struct CGRect)arg1 styleMask:(unsigned long long)arg2;
+ (struct CGRect)frameRectForContentRect:(struct CGRect)arg1 styleMask:(unsigned long long)arg2;
+ (struct CGRect)contentRectForFrameRect:(struct CGRect)arg1 appearance:(long long)arg2 anchorSize:(struct CGSize)arg3 contentInset:(CDStruct_3c058996)arg4;
+ (struct CGRect)frameRectForContentRect:(struct CGRect)arg1 appearance:(long long)arg2 anchorSize:(struct CGSize)arg3 contentInset:(CDStruct_3c058996)arg4;
@property struct CGPoint anchorPoint; // @synthesize anchorPoint=_anchorPoint;
@property long long popoverAppearance; // @synthesize popoverAppearance=_popoverAppearance;
@property CDStruct_3c058996 contentInset; // @synthesize contentInset=_contentInset;
@property struct CGSize anchorSize; // @synthesize anchorSize=_anchorSize;
@property unsigned long long anchorEdge; // @synthesize anchorEdge=_anchorEdge;
- (struct CGRect)titlebarRect;
- (BOOL)_hasActiveDragTypes;
- (void)draggingEnded:(id)arg1;
- (void)concludeDragOperation:(id)arg1;
- (BOOL)performDragOperation:(id)arg1;
- (void)draggingExited:(id)arg1;
- (unsigned long long)draggingEntered:(id)arg1;
- (void)_markAnchorRectAsNeedingDisplay;
- (void)setFrameSize:(struct CGSize)arg1;
- (BOOL)_isBorderView;
- (void)_drawFrameShadowAndFlushContext:(id)arg1;
- (void)tileAndSetWindowShape:(BOOL)arg1;
- (void)shapeWindow;
- (void)_setFrameNeedsDisplay:(BOOL)arg1;
- (id)opaqueAncestor;
- (BOOL)isOpaque;
- (struct CGRect)dragRectForFrameRect:(struct CGRect)arg1;
- (void)_resetDragMargins;
- (void)_clearDragMargins;
- (double)_distanceFromToolbarBaseToTitlebar;
- (void)_hideToolbarWithAnimation:(BOOL)arg1;
- (void)_showToolbarWithAnimation:(BOOL)arg1;
- (BOOL)_toolbarIsManagedByExternalWindow;
- (BOOL)_toolbarIsHidden;
- (BOOL)_toolbarIsShown;
- (BOOL)_toolbarIsInTransition;
- (BOOL)_canHaveToolbar;
- (id)zoomButton;
- (id)minimizeButton;
- (id)closeButton;
- (unsigned long long)styleMask;
- (id)title;
- (void)_windowChangedKeyState;
- (void)drawRect:(struct CGRect)arg1;
- (struct CGPoint)_adjustedForBoundsAnchorPoint:(struct CGPoint)arg1 anchorEdge:(unsigned long long)arg2;
- (id)_getPopoverIfAvailable;
- (void)drawBackgroundInRect:(struct CGRect)arg1 ofView:(id)arg2 anchorEdge:(unsigned long long)arg3 anchorPoint:(struct CGPoint)arg4;
- (void)_drawHUDPopoverAppearanceInRect:(struct CGRect)arg1 anchorEdge:(unsigned long long)arg2 anchorPoint:(struct CGPoint)arg3;
- (void)_drawMinimalPopoverAppearanceInRect:(struct CGRect)arg1 anchorEdge:(unsigned long long)arg2 anchorPoint:(struct CGPoint)arg3;
- (struct CGImage *)_imageMaskForPath:(struct CGPath *)arg1 anchorEdge:(unsigned long long)arg2 anchorPoint:(struct CGPoint)arg3;
- (struct CGPath *)_newMinimalAppearancePathInBounds:(struct CGRect)arg1 anchorEdge:(unsigned long long)arg2 anchorPoint:(struct CGPoint)arg3 topCapOnly:(BOOL)arg4 arrowOffset:(double)arg5;
- (struct CGPath *)_newMinimalAppearancePathInBounds:(struct CGRect)arg1 anchorEdge:(unsigned long long)arg2 arrowPosition:(double)arg3 topCapOnly:(BOOL)arg4 arrowOffset:(double)arg5;
- (void)_setHasDragWindowAppearance:(BOOL)arg1;
- (BOOL)_hasDragWindowAppearance;
- (void)_tileAndRedisplay:(BOOL)arg1;
- (struct CGRect)contentRectForFrameRect:(struct CGRect)arg1 styleMask:(unsigned long long)arg2;
- (struct CGRect)frameRectForContentRect:(struct CGRect)arg1 styleMask:(unsigned long long)arg2;
- (void)_setDragImage:(id)arg1;
- (id)_dragImage;
- (void)dealloc;
- (void)_windowTransformAnimationDidEnd:(id)arg1;
- (void)_windowTransformAnimationWillBegin:(id)arg1;
- (void)viewDidMoveToWindow;
- (void)_loadTheme;
- (void)viewWillDraw;
@property BOOL shouldBlurBackground;
- (void)_setWindowBackgroundBlurIfNeeded;
- (BOOL)_canHaveBlur;
- (void)_invalidateShadow;
@property BOOL shouldInsetForAnchor; // @dynamic shouldInsetForAnchor;
- (id)initWithCoder:(id)arg1;
- (id)initWithFrame:(struct CGRect)arg1 styleMask:(unsigned long long)arg2 owner:(id)arg3;
- (id)initWithFrame:(struct CGRect)arg1;
- (void)_commonPopoverInit;
@end
然后我可以子类化 _NSPopoverWindow
,它也是私有(private)的,并覆盖
+ (Class)frameViewClassForStyleMask:(unsigned long long)arg1;
我不能继承它因为它是私有(private)的..有办法绕过这个吗?
或者还有其他方法吗?
最佳答案
关于objective-c - 改变 NSPopover 的外观?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13892566/
我想更新我的应用程序并只切换到 Lion,因为我使用的是新的 NSPopover 类。我将部署目标和基础 SDK 设置为 10.7,但仍然收到错误消息: NSPopover: Class Unavai
Apple 在多页面 NSPopovers 中使用这些看起来相当酷的自定义 (?) 按钮: 当您突出显示某个单词并在 NSTextView 中选择“查找...”时,您可以看到它们。 有人知道这些是否适
我的代码中有一些功能可以在事件发生时打开弹出窗口。问题是,如果这些事件相继发生,则打开的弹出窗口会重叠。 我想在打开新弹出窗口时关闭一个弹出窗口。 如果有事件的弹出窗口,有什么方法可以从 nswind
我在名为 Moom 的应用程序中看到了此功能. 这看起来像这样: 是否有一种干净的方法来以这种方式装饰窗口,或者我应该创建某种恰好位于最大化按钮顶部的应用程序,透明或带有 0x0 框架,并在此创建一个
我有一个 OSX 应用程序,它使用 NSViewController 在我的 NSView 中交换输入输出 View 。其中一个 View 是 NSOutlineView。我现在希望当用户双击大纲 V
在我的 Mac 应用程序中,我想使用由 NSStatusItem 激活的 NSPopover。激活就像一个魅力,但我想摆脱 NSPopover 提供的标准窗口(白色或 HUD),并使用我自己的 Vie
我真的希望我能更具体,但不幸的是,我不能。所有适当的对象都是非零的,并且所有适当的方法调用都(大概)成功完成,但我的 NSPopover 从未出现。也没有调用任何委托(delegate)方法。 //
我正在开发 NSPopover 应用程序。我正在使用raywenderlich tutorial作为起点。 我遇到的问题是,当弹出窗口打开并且系统状态栏关闭时(例如在笔记本电脑上使用多个全屏应用程序时
我正在尝试复制 iTunes 中搜索字段的行为,以查找股票代码和名称。具体来说,当您开始在搜索字段中输入内容时,会出现一个弹出窗口,其中包含已过滤的项目。在大多数情况下,我都能做到这一点,但我无法复制
您好,我在我的一个应用程序中实现了 NSPopover,但弹出窗口不会关闭。我猜一旦我单击其他内容,它应该关闭,但事实并非如此。我知道有一个关闭弹出窗口操作,但这只适用于不同的按钮。当我按下同一按钮时
我没有找到一些动态创建 NSPopover 的示例,而是使用 Interface Builder。 以下代码出现异常,已加载 Nib ,但未设置 View : NSViewController *co
是否有与iOS应用程序的NSPopover类似的东西?尽管我已使用此功能(或至少一些非常相似的功能)下载了应用程序,但它出现在Mac的对象库中,而不是iPhone和iPad的对象库中。 所以我的问题是
我有一个 NSPopover,里面有一些按钮。 出于某种原因,当我单击弹出窗口中的任意位置时,其中一个按钮会突出显示。如何防止这种情况发生? 最佳答案 不久前,但是...在 IB 中选择按钮并在检查器
NSPopover 指针总是放在中心,当按钮放在角落时会产生不好的效果。 在 Swift 中我可以将指针向左或向右移动吗??? 我知道前段时间有人问过同样的问题,只是想知道是否有任何更新。 提前致谢
如果用户单击菜单图标以显示弹出窗口,如果用户单击弹出窗口以外的任何地方,弹出窗口将关闭,我将尝试这样做。我将行为设置为 transient ,但那不是我想的那样。 现在,如果用户单击弹出窗口的某处将焦
我有一个带有我的 View 的 xib 和一个具有 transient 行为的 NSPopover: 在 View Controller 中,我有一个像这样控制弹出窗口的操作: @IBActi
有没有办法强制 NSPopover 在分离状态下启动?我只看到 isDetached,它是 popover 状态的只读属性和 NSPopoverDelegate 方法 detachableWindow
我有一个类,它是从带有 xib 的窗口 Controller 派生的,它具有所有功能。在这个 xib 中,我有一个显示大厅列表的表格 View 。如果我双击大厅名称,我会看到一个弹出窗口,其中显示该大
我正在使用 NSPopover 并且我将一个 NSViewController 放入其中以显示为来自 NSStatusItem 的自定义 View 。大多数 View Controller 显示正确,
我有一个大问题,一周以来我都无法解决。我的情况: 我有一个带有 NSTableview 和自定义单元格的 ViewController。每个销售都有一个 nsbutton。如果您按下按钮,则会出现 n
我是一名优秀的程序员,十分优秀!