ページ

2008年5月22日木曜日

NSTrackingArea(options指定が不足するとクラッシュ)

このエントリーをブックマークに追加 このエントリーを含むはてなブックマーク

Tips: NSTrackingArea#initWithRect:options:owner:userInfo: を使ってインスタンスを作成する時の注意点。

options に NSTrackingActiveInKeyWindow を含めないとクラッシュする。


実際にはトラッキング範囲を決めるにあたって NSTrackingActiveInKeyWindowを含むオプションのグループがあるので、おそらくこのどれかが含まれていないとクラッシュすると思われる。

NSTrackingArea.h

/* When tracking area is active.  You must specify one of the following in the NSTrackingAreaOptions argument of -initWithRect:options:owner:userInfo: */
enum {
NSTrackingActiveWhenFirstResponder = 0x10, // owner receives mouseEntered/Exited, mouseMoved, or cursorUpdate when view is first responder
NSTrackingActiveInKeyWindow = 0x20, // owner receives mouseEntered/Exited, mouseMoved, or cursorUpdate when view is in key window
NSTrackingActiveInActiveApp = 0x40, // owner receives mouseEntered/Exited, mouseMoved, or cursorUpdate when app is active
NSTrackingActiveAlways = 0x80, // owner receives mouseEntered/Exited or mouseMoved regardless of activation. Not supported for NSTrackingCursorUpdate.
};



それだけ。