問題タブ [nscursor]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
1639 参照

objective-c - カスタムNSViewにカーソルを設定するにはどうすればよいですか?

マウスの位置に応じてカーソルを設定する必要があるカスタムビューがあります。ハンドラー[NSCursor set]にカーソルを設定するために使用します。mouseMoved:これはOSX10.5で機能しますが、ほとんどの場合10.6では機能しません。カーソルが変わることもありますが、通常は変わりません。

問題は、イベントに応じてカーソルを設定する必要があることです。mouseMoved:カーソルの四角形を登録しNSTrackingAreaたり、updateCursor:イベントを使用したりすることができません。NetSurfブラウザ用のCocoaフロントエンドに取り組んでいます。エンジンは、フロントエンドからのマウス移動イベントを予期します。カーソルがリンクまたは別のカーソルを必要とするものの上にある場合、エンジンはフロントエンドから関数を呼び出して新しいカーソルを設定します。

Snow Leopardでこれを機能させる方法について何かアイデアはありますか?

0 投票する
1 に答える
638 参照

cocoa - 非アクティブなアプリケーションから現在のカーソルを変更できますか?

LSUIElementバックグラウンドで実行される (有効になっている)ユーティリティ Mac アプリケーションがあります。ある条件下で、このアプリケーションはいくつかのボタンを含むメニュー ウィンドウを表示します。問題は、このウィンドウにカーソルを合わせると、マウス カーソルがその下のアプリケーションに従って動作することです。メニューの下にテキストがある場合、カーソルは挿入の「I ビーム」形状に変わります。

明らかに、私は通常のポインター矢印を好みます。NSTrackingArea少しハッキングした後、マウス入力イベントとマウス終了イベントを検出できる友人に飛び込みました。しかし、NSCursorマウス入力を使用して現在のカーソルを変更しようとしても、何も起こりません。マウス入力イベントの前にアプリケーションをアクティブにすると、カーソルが変化するため、マシンが非アクティブなアプリケーションからのカーソルの変更を拒否しているようです。

カーソルを変更するためだけにアクティブなアプリケーションを切り替えたくありません。非アクティブなアプリケーションからカーソルをいじる方法はありますか?

PS cocoa-dev でも同じ問題: onetwo

0 投票する
2 に答える
220 参照

objective-c - 他のフレームワークから画像を取得するには?

ライオンと同じ形のカーソルが欲しい

だからこれを持っている代わりに: NSCursor アイコン

これが欲しい:Lion の NSCursor

System/Library/Frameworks/ApplicationServices.framework/Versions/A/Frameworks/HIServices.framework/Versions/A/Resources/cursors/resizeeastwest/cursor.png新しいOSX 10.7 GMで見つけることができます

NSBundle などのメソッドを使用してそのイメージをロードする方法はありますか? システムからイメージを使用できる場合、アプリケーションに同じイメージを (リソースとして) 使用したくありません。

0 投票する
1 に答える
2956 参照

macos - NSCursor set コマンドの最も簡単な使用法

OSX アプリケーション用のカスタム カーソルを取得しようとしています。過去数時間、成功せずにこれを行うことについて読んだことがあります。したがって、他に何もないプロジェクトで、現在のカーソルを十字カーソルとして設定するだけで、最も単純な側面に移動しました。

これは、カーソルを変更しない最も基本的なセットアップです。XCode を使用して、新しい Cocoa プロジェクトを作成しました。私が書いたコードは、次の関数の 1 行だけです。

これはカーソルを変更しません。おそらく、非常に基本的な何かが欠けていることを意味しますが、私の人生では理解できません。

NSCursor -push メソッドを使用して現在のカーソルを変更して、さまざまなバリエーションを試しましたが、機能しません。また、NSButtonを配置してから、別の回答がここで示唆するように実行してみました(ボタンのタイプはNSButton *です):

以前に iPhone 用のアプリをいくつか書いたことがありますが、Mac 用のアプリは作成したことがありませんが、かなり似ているようです。私は絶望的に愚かな何かを見逃していますか?addCursorRect:cursor: メソッドも試してみましたが、うまくできたかどうかわかりません。どの関数がそれをどこから呼び出すべきかは明確ではありませんでした。

別のカーソルを表示する方法を理解したら、カーソル用の独自の画像の作成に進みたいと思います。

ありがとう!

0 投票する
1 に答える
616 参照

cocoa - カスタム NSCursor がすべてのアプリケーションに適用されるわけではありません

ボタンを押した後にカーソルを変更する Cocoa プログラムを作成しました。具体的には、カーソルはポインターの代わりに画像を含みます。次のコマンドを使用して設定しました。

これは機能し、カーソルは正しく変化します。ただし、この変更はすべてのアプリケーションに当てはまるわけではありません。たとえば、スライドショー モードで Keynote プレゼンテーションに切り替えると、カーソルが矢印に戻ります。プレゼンテーションの PDF 全画面表示に切り替えると、カーソルが手の形に変わります (これらは、それぞれのアプリケーションによって設定されたデフォルトのカーソルだと思います)。

私の質問は次のとおりです。それらをオーバーライドして、すべてのアプリケーションでカスタム カーソルを保持する方法はありますか? Keynote スライドショーと PDF フルスクリーン表示の間でも、変更したカーソルを保持したいと思います。何か案は?

ありがとう!

0 投票する
2 に答える
734 参照

cocoa - アクティブでないときでも変更 (カスタム カーソル、画像の描画) を実行できる OS X アプリケーションを作成する方法は?

以前、OSX でシステム全体のカーソルを変更することについて質問しました。NSCursor を使用してカーソルを変更しましたが、その効果はアプリケーションがアクティブな間だけです。別のアプリケーションがアクティブになると、カスタム カーソルは失われます。

これは、関連するより一般的な質問です。システムワイフ効果を持つアプリケーションをどのように作成できますか? たとえば、アプリケーションがアクティブでないときでも画面上に画像を描画し、他の何かがアクティブな場合は?

おそらく、Cocoa API よりも低いレベルに進む必要があることは理解しています。どこから探し始めたらいいのかわからない?確認する必要がある特定の Carbon API はありますか? それとももっと低い?

任意のポインタをいただければ幸いです!システム全体でカーソルを変更する方法、または画像を描画して移動する方法を具体的に知っている場合(アクティブなアプリケーションに関係なく)、それは私の現在の問題も解決します! システムにインストールされたときにこれを実現できるアプリケーションを作成できますか?

ありがとう!

0 投票する
2 に答える
590 参照

objective-c - 特定のビューのNSCursorの変更

ビュー上を通過するときにカーソルを変更しようとしていますが、機能していないため、正しくコーディングされていないと思います。

私はappcontrollerクラスを持っており、その.mファイルにこれがあります

0 投票する
1 に答える
4035 参照

macos - NSCursor を使用してカスタム カーソルを表示する方法

nscursor を使用して、ゲームでカスタム カーソルを使用しようとしています。次のコードを使用します

resetcursorrect メソッドでカーソル四角形を設定しています

カスタム カーソルが表示されます。一貫性がなく、システム カーソル (アラート用) に戻ることもあれば、戻ってくることもあれば、そうでないこともあります。とても紛らわしいです。「setOnMouseEntered」、「pop」を使用する必要があるかどうかわかりません。nscursor を使用して動的に変更する標準的な方法は何ですか。

0 投票する
3 に答える
3190 参照

xcode - NSCursor:「set」メソッドは効果がありません

Xcodeを使用して(cocos2dを使用して)Macアプリケーションで作業していて、カーソルを構成しようとしていますが、「set」メソッドが効果を発揮しない場合があります...

アプリケーションの起動時にカーソルを設定するのにすでに苦労していました(NSTimerは、アプリケーションが実際に起動された後にカーソルを設定します)。今は、ユーザーがクリックしたときに別の画像を表示したいだけです。そのためにNSNotificationを使用します。カーソルクラスが通知を受け取り、新しい画像を設定することになっています。その後、何もしません。

これが役立つかもしれないいくつかのコードです:

初期化では:

そして方法:

「updateCursor」メソッドは、アプリケーションがアクティブになったときにも呼び出され、正常に動作すると、正しいカーソルが表示されます。
popメソッドとpushメソッド、「setOnMouseEnter」(まだrectは使用していませんが)を試しましたが、結果はありません...
これについて誰かが手がかりを持っていますか?

編集:

見知らぬ人、私はappWakeメソッドを書きました:

これは通知によって呼び出されます:

appDelegateで設定する:

そして、この通知によって呼び出されると、正常に動作し、カーソルがランダムに変化します。しかし、applicationDidBecomeActiveで通知を削除し、コード内の別の場所で呼び出すと、何も実行されません(呼び出されていることを確認しましたが)...

0 投票する
1 に答える
452 参照

macos - [NSCursor set] の呼び出しによるパフォーマンス ヒットはありますか?

ユーザーがビュー内でオブジェクトを移動できるカスタム ビューを使用してアプリケーションを開発しています。彼らはそれらを拾って別の場所に置くことができます。拾うことができるオブジェクトと置くことができる場所に応じて、カーソルを変更したいと思います。

トラッキング エリアを使用していますが、正しいカーソルを維持するために、トラッキング エリア通知を使用し、マウスの動きに合わせてカーソルを設定しています

これはうまく機能しており、解決策はありますが、[NSCursor set]頻繁に呼び出すことでパフォーマンスが低下するかどうか、またはAppKit問題なくこれを処理できるかどうかを知りたいですか?

更新: Rob Kenigerのアドバイスに従って、アプリケーションのプロファイリングを行ったところ、カーソルの変更に費やされた実際の時間はわかりませんでした。安全のために、ここで定義されているように、現在のカーソルの状態を保持し、必要な場合にのみ設定する単純なマクロを実装しました。

これをコードで呼び出すと、次のようになります。