itok's Lab

昔の開発ネタを記録として残してます

任意の領域にToolTipを指定

NSView 上の任意の領域に ToolTip を指定する場合、例えば、NSTableHeaderView 上でカラムごとに ToolTip を表示する時なんかは、これを使います。

// NSView
-(NSToolTipTag) addToolTipRect:(NSRect)aRect
    owner:(id)anObject
    userData:(void*)userData;

ここで、anObject の指定にはいろいろありまして、anObject が NSToopTipOwner プロトコルを実装していれば、そのメソッドである

// NSToolTipOwner Protocol
-(NSString*)view:(NSView*)view
    stringForToolTip:(NSToolTipTag)tag
    point:(NSPoint)point
    userData:(void*)userData;

が呼ばれますが、そうでなければ description メソッドが呼び出されるようです。なので、anObject にそのまんま NSString を与えてもいいっていうことですね。