2015-10-06 40 views
0

我想顯示一個彈出窗口,其箭頭位於作爲我視圖一部分的按鈕(例如,按鈕位於我的主視圖上)。我在Interface Builder故事板編輯器中執行此操作(按住Ctrl鍵從彈出內容視圖)。彈出窗口顯示但未附加到按鈕。我發現工具欄彈出窗口上的按鈕顯示按鈕按鈕按預期方式。 segue的Anchor屬性設置爲該按鈕。 Xcode版本7.0.1(7A1001)。未連接到錨點的彈出窗口

編輯:我所做的圖像: 1)故事板。首先我按Ctrl從工具欄按鈕拖到第一個控制器,然後按住Ctrl鍵從第二個按鈕拖動到第二個控制器。 enter image description here 2)正確連接的彈出窗口 enter image description here 3)彈出窗口不附加到瀏覽按鈕。 enter image description here

+0

請附上示例代碼。謝謝 –

+0

@ xhruso00我在Interface Builder中做了這個,沒有代碼。我爲故事板中的popover添加了一個視圖控制器,然後使用popover將它連接到我的視圖上的按鈕,即它。 –

+0

如果您沒有提供樣本,請將圖片添加到您的代碼中,並告訴我什麼是正確的行爲,哪些不是。這比張貼未被接受的答案快。我正在爲你付出時間(無報酬)。 –

回答

1

你說得對。以下方法顯示發送視圖爲零,默認情況下窗口的contentview用於彈出窗口。

所以要解決只是檢查如果定位視圖爲零。如果是,將其設置爲按鈕(爲其創建插座)。

添加下面的方法到您的viewController

- (void)presentViewController:(NSViewController *)viewController asPopoverRelativeToRect:(NSRect)positioningRect ofView:(NSView *)positioningView preferredEdge:(NSRectEdge)preferredEdge behavior:(NSPopoverBehavior)behavior 
{ 
    //do custom implementation (workaround) 
    [super presentViewController:viewController asPopoverRelativeToRect:positioningRect ofView:positioningView preferredEdge:preferredEdge behavior:behavior]; 
} 
+0

我看到的一個問題是如何確定在哪個按鈕之後首先調用此方法(我在實際應用程序中有多個按鈕)。 –

+0

檢查哪一個被按下(狀態)。不要忘記檢查一個調用者可能是toolbaritem。這你必須檢查XIB。 –

相關問題