私は現在、OSX10.5以降のプロジェクトビルドに取り組んでいます。まず第一に、10.6ユーザーにはこれが表示されません。この問題が発生しているのは10.5ユーザーのみです。10.6ではこれを再現することはできません。
つまり、-(void)mouseUp:(NSEvent *)theEventのオーバーロード実装を使用してNSViewのカスタム拡張クラスを配置すると、NSSplitViewでラップされたときにmouseUpが呼び出されません。rightMouseUp:/ Down:拡張NSViewで機能します。
カスタムビューをウィンドウに配置するとイベントが呼び出され、nssplitviewで直接ラップすると、leopard(10.5)ユーザーに対してマウスアップが呼び出されません。
再現手順(10.5で!)
- 新しいココアプロジェクトを作成する
- 次のクラスを作成します
- ウィンドウにカスタムビューをドラッグして、クラスGTTestを作成します
- ウィンドウ上でスプリットビューをドラッグし、そのコンテンツビューの1つにGTTestを追加するだけです
クラス:
@interface GTTest : NSView {
}
#import "GTTest.h"
@implementation GTTest
- (void)mouseUp:(NSEvent *)theEvent {
NSLog(@"Ger");
}
ウィンドウのGTTestディレクトリをクリックすると、適切な行がログに記録されます。NSSplitViewをクリックしても、何も実行されません(ブレークポイントも試してください)。rightMouseDown:/ Up:NSViewで動作します。
ps> splitviewにボタンを追加すると(nsresponderが正しい派生nsviewもありますか?)、IBActionメソッドが起動します。上記の私のクラスも正しく機能するために欠けているものは何ですか?
私に何ができる?