(注:問題has been asked before,以低於決定性的結果在一年前我希望我們現在更知道一點,並能解決嗎?)在NSCollectionView中顯示NSPopover?
我試圖做一個NSPopover顯示了一個多NSCollectionItem當它被雙擊時。我的NSCollectionView設置正確並接收輸入。
(如果我複製粘貼代碼到其他的NSView子類,它工作得很好有一個與NSCollectionView東西,似乎搞亂事情了。)
代碼:
BIECollectionViewItem。^h
#import <Cocoa/Cocoa.h>
@class BIEAppDelegate;
@interface BIECollectionViewItem : NSView {
IBOutlet NSPopover *popover;
}
@end
BIECollectionViewItem.m
#import "BIECollectionViewItem.h"
@implementation BIECollectionViewItem
- (id)initWithFrame:(NSRect)frame
{
self = [super initWithFrame:frame];
if (self) {
// Initialization code here.
}
return self;
}
- (void)drawRect:(NSRect)dirtyRect
{
// Drawing code here.
}
- (void)mouseDown:(NSEvent *)theEvent {
[super mouseDown: theEvent];
if([theEvent clickCount] == 2){
[popover showRelativeToRect: [self bounds] ofView: self preferredEdge: NSMaxYEdge];
}
}
@end
如果我在mouseDown事件中添加一條日誌語句,我可以確認事件正在被觸發。但是,NSPopover拒絕出現!
有誰知道如何讓NSPopover出現在NSCollectionView上?
你在哪裏'alloc'和'init'' NSPopover'? – trojanfoe 2012-07-18 07:00:53
我不是; Interface Builder正在爲我處理這個問題。我只是從IB庫中拖出了一個「NSPopover」。然後它會自動創建一個'NSPopover'對象,一個'NSViewController'(標記爲「Popover View Controller」)和一個'NSView',它包含我想要出現在彈出窗口中的接口項。我已經在主窗口中對它進行了測試,並且它都可以正常工作,但是當我將它放到'NSCollectionView'中時,它無法顯示。 – 2012-07-18 21:51:26