2013-06-29 16 views
0

我附加了Mac Os X功能的圖像並嘗試複製它。主要是'搜索'功能Mac Os X創建OS X搜索過濾器面板

特別是如何通過按(+)按鈕添加更多標準來縮小搜索結果範圍?

使用的XCode & Interface Builder中,什麼是去複製這是如何工作的最好方法?

我提出的計劃:

  1. 創建NSTableView(查看基於表)與 '2列'。一個用於包含內容,另一個用於(+)和(-)按鈕。標題將被刪除,並在scrollView上移除滾動條。

  2. 創建NSTableViewCell &​​它來訪問它的控制與IBOutlets & IBActions。把它放在''列中。

  3. 填充子類NSTableViewCellPopUpControl和相應的其他元素。

  4. 填充柱 '' 與(+)&(-)按鈕,以及子類該列NSTableViewCell以及獲得對IBOutlets & IBActions爲控件的訪問。

這是我的起點,我會嘗試上傳編輯這很快與我工作的一個示例項目。任何幫助表示讚賞!

尋找您的想法和意見,並在這方面的任何幫助。 enter image description here

回答

4

而不是重新發明輪子,爲什麼不使用NSPredicateEditor

這是一個內置於Cocoa自OS X 10.5之後的控件,專爲此而設計。

+1

只是想發佈+1;)[這裏](https://developer.apple.com/library/mac/#samplecode/PhotoSearch/Introduction/Intro.html#//apple_ref/doc/uid/DTS10003994 )是一些應該幫助的源代碼。 – HAS

+0

我試圖檢查源代碼,但我得到以下錯誤(代碼簽名錯誤:身份'Mac開發人員'不匹配您的鑰匙串中的任何有效,未過期的證書/私鑰對),任何想法如何解決這個問題? –

+0

我想通了,你點擊該項目並關閉「代碼簽名」選項進行編譯。 –

0

請勿使用2列表視圖 - 使用基於1列視圖的視圖,並在視圖中使用約束和/或手動佈局代碼來放置按鈕。

此外,該容器應該是一個拆分視圖住房2表視圖和拆分是由代碼管理。

0

我不會在這裏使用NSTableView。 NSTableView是一個強大的類。它所做的很多事情 - 管理選擇,突出顯示所選單元格,滾動,回收已從屏幕滾動的視圖 - 在這種情況下沒有用處,有些實際上會妨礙您的工作。您使用的唯一真正的「桌面」是佈局,您可以通過多種方式輕鬆獲得表格佈局。

Maxthon Chan是對的,雖然,你想要一個相當複雜的視圖 - 控制器對來處理表中的每一行。這對類抽象出搜索查詢的一個子句,並向父控制器提供一個簡單的接口,這是一個組裝整個查詢以準備運行的控制器。對於每一行,你需要

- (MyQueryClause*) getQuery; 

而父控制器跟蹤所有活動的條款和處理添加/刪除按鈕:

- (IBAction) addClause: (id) sender; 
- (IBAction) removeClause: (id) sender;