2010-10-18 6 views
47

Das scheint so eine grundlegende Aufgabe, aber ich bin ratlos.Textsuche durch alle XIB-Dateien in Xcode?

Wie führen Sie in Xcode eine Textsuche (der XML-Inhalt) aller .xib-Dateien in einem Projekt durch?

Zum Beispiel enthalten alle unsere .xib-Dateien diese Zeichenfolge in der zweiten Zeile: com.apple.InterfaceBuilder3.CocoaTouch.XIB. Also würde ich denken, dass das Durchsuchen aller Projektdateien nach dieser Zeichenfolge alle .xib-Dateien zurückgeben würde, aber Xcode besteht auf "0 Vorkommen". Ich habe überprüft, dass die Projekt-Suchoptionen korrekt aussehen.

Ich muss etwas offensichtlich fehlen. (Oder Xcode ist irgendwie hart codiert, um .xib-Dateien zu überspringen.)

Ich versuche, alle .xib-Dateien zu finden, die auf eine bestimmte Klasse verweisen (und eine Textsuche scheint der direkteste Weg zu sein).

Danke!

+0

Muss dies in Xcode gemacht werden, oder kann es im Terminal gemacht werden? –

+0

Idealerweise würde ich gerne wissen, wie man Xcode macht, damit ich auf jede Ergebniszeile klicken und die Datei im Xcode-Bearbeitungsfenster öffnen kann. Wenn es in Xcode nicht möglich ist, würde ich das gerne wissen. Wenn das der Fall ist, würde ich Alternativen zu schätzen wissen. –

Antwort

78

Was ich tue, ist grep in Terminal ausführen:

grep -i -r --include=*.xib "TextToFindHere" /PathToSearchHere 

Xcode scheint nicht eine Option haben xib Dateien und meine Versuche zur Suche Spotlight zu erhalten, schauen sie nicht erfolgreich waren.

+2

Bingo. Führen Sie die Suche nicht in Xcode aus; Führen Sie es stattdessen in Terminal.app aus. Um die Dinge zu vereinfachen, können Sie das Dateisymbol aus der Titelleiste in Terminal.app ziehen und es ablegen, um den Pfad der Datei zu erhalten, und dann einfach löschen, bis Sie wieder im Projektstammverzeichnis sind. –

+0

Sehr nützlich für mich, danke! –

+0

Ich habe es benutzt, aber was ich bekomme ist: ** /. DocumentRevisions-V100/PerUID/503/bd/com.apple.documentVersions/14D9CB29-07F2-4670-937F-05188E6D64C6.xib: ** das scheint zu sein eine Revisionskopie der XIB-Datei, aber nicht die XIB-Datei selbst .. – aneuryzm

9

Hier ist mein handlicher Befehl, der mich nie verlässt. Führen Sie es aus dem Projektverzeichnis in Terminal aus.

finden. -name "* .xib" -exec grep "zu suchender Text" {} \; -print

3

Ich realisiere, dass das ziemlich alt ist, aber ich möchte jenen von Ihnen vorschlagen, die zufällig auch andere Sprachen auf Ihrem Computer programmieren und wählen, Sublime Text 2 zu benutzen (was wundervoll ist), nur zu öffnen Ordner Ihres iOS-Projekts in Sublime und verwenden Sie die Funktion "Alle finden". Sehr schnell, sehr zuverlässig.

Dies war, was ich getan habe, um nicht verwendete Bildressourcen aus einem meiner größeren Projekte zu entfernen.

~ Glücklich Coding =]

+0

Große Ressource! Danke dafür. – jwarrent

0

Dies funktioniert, wenn Sie als Service nutzen ....

on run {input, parameters} 

display dialog "XIB Search Text" default answer "" 
set searchtext to text returned of result 

if (length of searchtext) is greater than 0 then 

    tell application "Xcode" to set theProjectPath to (the project directory of front project) 

    tell application "Terminal" 

    set newWin to do script "cd " & theProjectPath & "; " & "rm " & theProjectPath & "/searchXIB.txt 2> /dev/null ; grep -i -r --include=*.xib " & searchtext & " . > searchXIB.txt ; exit" 
    activate 

    repeat while (exists newWin) 
    delay 1 
    end repeat 

    tell application "Xcode" 
    set doc to open theProjectPath & "/searchXIB.txt" 
    activate 
    end tell 

    tell application "System Events" 
    keystroke "f" using {command down} 
    keystroke searchtext 
    end tell 
    end tell 
    end if 
return input 
end run 
+0

Sie müssen dokumentieren, wie Sie Top-Parameter zu tun, beachten Sie selbst – ort11

4

kann ich bescheuert sein, aber Scheinwerfer arbeitet auf diesem für mich sehr mit.

+0

In der Tat scheint Spotlight Vielleicht ist es in Mountain Lion behoben worden. – Anna

3

U kann diese Funktion in Ihrem bash-Profil verwenden:

function grep_xib { 
    grep -i -r --include=*.xib "$1" . 
} 

Dann rufen Sie einfach in die Klemme "grep_xib TEXT_TO_FIND". Es ist einfacher.

  • Start up-Terminal
  • Typ "cd ~ /" gehen Sie zu Ihrem Home-Ordner
  • Typ "touch Bash_profile" zu:

    Um einen Bash_profile auf Ihrem Mac folgen diese Schritte zu erstellen Erstelle deine neue Datei.

  • bearbeitet Bash_profile mit Ihrem bevorzugten Editor (oder Sie können es nur in TextEdit Typen „öffnen -es Bash_profile“ zu öffnen.
  • Type „Bash_profile“ Bash_profile neu zu laden und alle Funktionen aktualisieren Sie hinzufügen.
0

Öffnen Sie den Projektordner in erhabenen Text und suchen Sie in allen Dateien, sehr einfach und bequem.

0

Ich hatte das gleiche Problem und ich löste es mit einigen Konsolenbefehlen.

1) Öffnen Sie das Terminal auf Ihrem Mac

2) run "grep -i -r --include = *. Xib "Suchtext"/ Ihr/Projekt/path" Befehl

wird es suche im Pfad "/ your/project/path" und drucke den kompletten Pfad aller Dateien, die den "Suchtext" verwenden.

Hoffe, das wird Ihnen helfen!

1

Sie können den Suchbereich in Xcode ändern, indem Sie einen neuen Bereich definieren. Gehen Sie zum Suchfeld und unterhalb der Suchleiste befindet sich ein Symbol mit drei Punkten (vermutlich standardmäßig "In Workspace"). Klicken Sie darauf und klicken Sie unter SEARCH SCOPES auf "New Scope". Definieren Sie es als "Name"/"endet mit"/".xib".

+0

Dies ist die beste Antwort, da es die Suche innerhalb von Xcode anspricht Beachten Sie, dass es eine Option für den Suchbereich gibt, um eine bestimmte Dateierweiterung zu verwenden. –