2011-07-13 23 views
17

在XCode4中,我發現我無法獲得代碼完成,無法簡化第一部分常見的多參數方法名稱。例如,從UITableViewDelegate考慮以下方法:XCode4中多參數方法名稱的代碼完成

- tableView:viewForHeaderInSection: 
- tableView:heightForHeaderInSection: 
- tableView:accessoryTypeForRowWithIndexPath: 
... 

不勝枚舉;有相當多的方法開始tableView。如果我輸入「tableView」,列表很長,不能快速導航。如果我鍵入「tableView:」,只要輸入冒號(:)就會退出代碼完成。如果我輸入諸如「tableViewview」之類的運行,則完成也會退出,可能是因爲它不再與字面上的第一個方法名稱部分匹配。

有沒有一種方法可以通過這樣的列表上的鍵盤來完成,而無需鼠標移動或敲擊隨機數字的箭頭鍵點擊來瀏覽長列表?我很難相信多參數Objective-C方法的代碼完成是如此有限,但迄今爲止實驗和文檔都沒有被證明。

澄清更新: 上面我指的是完成方法聲明(例如在.m文件中),而不是方法調用。對於方法調用,XCode 4.x獨立完成每個方法參數部分;這很好。上述問題僅適用於聲明,通常在開始在.m文件中編寫新的方法實現時。

+0

我面臨同樣的問題! – Vasu

回答

6

看來,你期望的行爲是(不幸的是)在Xcode中沒有實現。不過,我已經找到了部分解決方案:當您指定的多參數方法的完整的第一部分,也就是說,如果你(在末尾用空格)鍵入此

- tableView:(UITableView *)tableView 

,按ESC鍵代碼完成工作那麼將出現代碼完成對話框,您將可以繼續輸入方法名稱的其餘部分。

你可能想知道:

「哦,孩子,我真的有在這漫長的序言中鍵入只是爲了讓我的 代碼完成?」

代碼片段的救援!您只需輸入一次前導碼即可,convert it into snippet。我發現最好用以下方法配置它,不要忘記在代碼部分的末尾添加空間,它會使事情變得更容易。

Ima

你應該如何使用您剛剛創建的東西嗎?在你的.m文件中輸入tabl,Xcode會讓你自動完成你的代碼片段。放置序言後,按ESC鍵顯示自動完成列表。

該解決方案不是非常健壯,因爲您必須爲要使用的每個多部分方法創建一個片段,但它確實節省了一些時間,並且沒有那麼多的多部分方法名稱共享相同的前綴。

2

對不起,它不工作,我用你想要更新的協議存根提到。 我使用Accessorizer爲此,mac應用商店中的應用程序要完全實現您要實施的委託/協議方法的聲明。希望有一點幫助。

舊文章:

我用Tab 這一點。 示例我經常有: 您想要在代碼完成中使用許多init方法之一。

然後,您不想向下滾動或使用許多按鍵即可找到正確的方法。

命中>打標籤>init完成。

命中逃生然後瓦特,然後再標籤所有這些initWith方法。

你甚至可以使用標籤⇥ /退出第一個參數後,有比方法更只有一個參數。

在你的情況打>標籤>逃生>一個並返回,有你有你的第三種方法。 您也可以使用Shift + Tab 跳轉到之前的代碼完成參數。