2011-08-05 3 views
1

OSXアプリケーションのカスタムカーソルを取得しようとしています。私は最後の数時間の成功なしでこれを行うことについて読んできました。だから私は単純な側面に移動しました。単に他のものがないプロジェクトでは、現在のカーソルを十字カーソルとして設定するだけです。NSCursorセットコマンドの使用が最も簡単です

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

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
     [[NSCursor crosshairCursor] set]; 
} 

これはおそらく、私は非常に基本的な何かが足りないのです意味し、カーソルを変更しませんが、私の人生のために把握することはできません。

NSCursor -pushメソッドを使って現在のカーソルを変更しても、多くのバリエーションを試しましたが、動作しません。私はまた、別の答えが示唆するようNSButtonを入れ、次にやってみましたhere(ボタンタイプNSButton *のではない場合):Mac用決して私が前にiPhoneのためのカップルのアプリを書いた

[button addCursorRect:[button bounds] cursor:[NSCursor crosshairCursor]]; 

が、しかし、それはかなり似ているようです。私は絶望的に何かを逃していますか?私もaddCursorRect:cursor:メソッドで試してみましたが、私はそれを正しく行ったかどうかはわかりません。どの機能がどこから呼び出されているのかは明確ではありませんでした。

いったん別のカーソルを表示する方法を見つけたら、カーソルの自分のイメージを作成したいと思います。

ありがとうございます!

答えて

1

なぜか分かりませんが、applicationDidFinishLaunchingでカーソルを設定しても動作しないようです。 (私はちょうど試しました)しかし、ボタンをクリックした結果、または起動時にタイマーを使用したい場合など、後で行うとうまくいきます。

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { 
    [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(timer:) userInfo:nil repeats:NO]; 
} 

-(void)timer:(id)foo 
{ 
    [[NSCursor pointingHandCursor] set]; 
} 
+0

ありがとうございます!それは私のために働く!これは、iPhone用に開発したときに私が持っていた非常に似た問題を思い起こさせます。誰かのために、カメラの火災などを持っているようないくつかのコマンドが動作していなくても、iphoneで問題が発生している場合は、後で実行するか、上記の遅延の後に実行してください。 applicationDidFinishLaunchingでコマンドを実行したときに、目的の結果が得られないというコマンドを見たことがあります。これには理由があるかもしれないし、そうでないかもしれないが、今のところ回避策として十分である。 – AJJ

+1

よろしくお願いします。 AppleがコールバックapplicationAlmostButNotCompletelyFinishedLaunchingを呼び出す必要があるかもしれません;) –

関連する問題