如何将对象附加到NSCursor? OSX

时间:2012-11-11 15:46:41

标签: objective-c macos cocoa nscursor

我想在用户悬停按钮时将WebView附加到光标。并在鼠标退出时将其删除 即使光标移动到按钮内部,我也希望WebView跟随光标 有关如何执行此操作的任何想法?

以下是一个示例:例如:enter image description here

2 个答案:

答案 0 :(得分:0)

所以你有一个NSButton ...子类,所以你附上一个视图:

@interface ButtonWithWebViewOnHover : NSButton
@property(strong) WebView *webView;
@end

在那里覆盖mouseEntered和mouseExited并切换隐藏的

......等等......我们似乎正在重新发明轮子


使用NSPopover(直接来自apple,但不像下一个那样灵活:)

或MAAttachedWindow(http://mattgemmell.com/2007/10/03/maattachedwindow-nswindow-subclass/)

答案 1 :(得分:-1)

您可以创建WebView的子类,并考虑绘制它,此方法称为:

- (void)drawRect:(NSRect)dirtyRect;

如果你在这个方法中调用[super drawInRect:dirctyRect],通常会绘制视图,否则不会绘制任何内容。所以你可以看到鼠标是否在视图上并决定是否绘制它。

要调整大小,您可以使用此方法:

- (void)setBounds:(NSRect)boundsRect;

要检测鼠标事件,您应在主视图中实现 mouseDown 等方法(请参阅NSResponder)。