0

ユーザーがボタンをホバーしたときにカーソルに WebView をアタッチしたい。マウスが終了したら削除します。
カーソルがボタン内を移動しても、WebView でカーソルを追跡し続けたい。
これを実行する方法についてのアイデアはありますか?

これがどうあるべきかの例です:
ここに画像の説明を入力

4

2 に答える 2

0

NSButton ...サブクラスがあるので、ビューをアタッチします:

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

そこで mouseEntered と mouseExited をオーバーライドし、非表示に切り替えます

……待って……私たちは車輪を再発明しているようです


NSPopover を使用します (Apple から直接入手できますが、次のようにグラフィカルに柔軟ではありません:)

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

于 2012-11-11T19:48:32.200 に答える
-1

WebView をサブクラス化することができ、それを描画するためにこのメソッドが呼び出されると考えてください。

- (void)drawRect:(NSRect)dirtyRect;

Ao このメソッドで [super drawInRect: dirctyRect] を呼び出すと、通常どおりビューが描画されます。それ以外の場合は何も描画されません。したがって、マウスがビューの上にあるかどうかを確認して、描画するかどうかを決定できます。

サイズを変更するには、代わりに次のメソッドを使用できます。

- (void)setBounds:(NSRect)boundsRect;

マウス イベントを検出するには、メイン ビューにmouseDown ( NSResponderを参照) などのメソッドを実装する必要があります。

于 2012-11-11T16:00:49.953 に答える