4

ドキュメントを掘り下げましたが、その方法が見つかりませんでした。IKImageBrowserView のすべてのアイテムにツールチップを追加するにはどうすればよいですか?

4

1 に答える 1

6

IKImageBrowserViewはNSViewであるため、次の関数を使用してツールチップの長方形を追加できます。

http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSView_Class/Reference/NSView.html#//apple_ref/doc/uid/20000014-SW47

私の実装では、サイズ変更されないスクロールビュー内に画像ブラウザがあるため、次のコードを使用してデータが変更されたときにツールチップを更新するだけで済みます。ここで、画像はデータソース配列です。

[imageBrowser reloadData];
[imageBrowser removeAllToolTips];
for (int i=0; i<[images count]; i++) {
    NSRect rect = [imageBrowser itemFrameAtIndex:i];
    ImageObject *image = [images objectAtIndex:i];
    [imageBrowser addToolTipRect:rect owner:self userData:image];
}

次に、この関数を実装しました。

- (NSString*)view:(NSView *)view stringForToolTip:(NSToolTipTag)tag point:(NSPoint)point userData:(void *)data {
    ImageObject *image = (ImageObject*)data;
    return [image imageTitle];
}

画像ブラウザのレイアウトが変更された場合(列の追加/削除のサイズを変更したり、ズームを変更したりするなど)、すべてのツールのヒントを更新する必要があります。

于 2012-01-08T17:40:20.853 に答える