Xcode 자동 완성 부분 disable 하기

오랜만의 포스팅 입니다.

Xcode에서 자동 완성이 귀찮을 경우 또는 수정이 필요한 경우 해당 keyword를 disable 할 수 있습니다.


우선 Xcode 설치 디렉토리안의

Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources

디렉토리로 이동하신 뒤

(예: /Developer/Applications/Xcode.app/Contents/PlugIns/TextMacros.xctxtmacro/Contents/Resources)

C.xctxtmacro 파일을 편집 해 주시면 됩니다.


위 파일을 열면..

{
	Identifier = c.block.if;
	BasedOn = c.block;
	Name = "If Block";
	IsMenuItem = YES;
	OnlyAtBOL = YES;
	Command = "if";
	Expressions = "<#condition#>";
	CompletionPrefix = if;
	CycleList = (
		c.block.if,
		c.block.ifelse,
	);
},

와 같은 code block이 나오는데 이 부분을 적당히 검색 하셔서 삭제 또는 주석처리(/* ~ */) 하시면 됩니다.

수정한 뒤 Xcode를 재시작 하면 제대로 적용된 것을 보실 수 있습니다.

이 부분을 이용하여 자기가 원하는 자동완성을 등록해도 됩니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2010/08/09 17:19 2010/08/09 17:19
, ,
Response
15 Trackbacks , No Comment
RSS :
http://b4you.net/blog/rss/response/255

Xcode에서 객체를 새로 생성하면 다음과 같이 자동으로 code가 입력되어 있는 것을 보실 수 있습니다.

#import "TestClass.h"

@implementation TestClass

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
    }
    return self;
}


- (void)drawRect:(CGRect)rect {
    // Drawing code
}


- (void)dealloc {
    [super dealloc];
}

@end


개인적으로 괄호 여는 스타일, 들여쓰기가 default로 공백이라는 점 등등 마음에 안드는 점이 한두개가 아닌데요, 아래의 경로에서 이러한 자동 생성되는 코드를 수정할 수 있습니다.

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/File Templates


안에 보시면..

사용자 삽입 이미지

위의 그림에서와 같이 iPhone OS의 Cocoa Touch Class, Code Signing등의 디렉토리를 보실 수 있습니다.
여기서는 Cocoa Touch Class의 Objective-C class에 있는 UIView 클래스의 기본 코드를 수정 하도록 하겠습니다.

우선

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/File Templates/Cocoa Touch Class/Objective-C class/UIView subclass.pbfiletemplate


로 이동한 뒤, class.h와 class.m 파일을 수정합니다. (만일의 사태에 대비하여 수정 전 백업 해두세요)
기본적으로 아래와 같이 되어 있는 코드를..

//
//  «FILENAME»
//  «PROJECTNAME»
//
//  Created by «FULLUSERNAME» on «DATE».
//  Copyright «YEAR» «ORGANIZATIONNAME». All rights reserved.
//
«OPTIONALHEADERIMPORTLINE»
@implementation «FILEBASENAMEASIDENTIFIER»

- (id)initWithFrame:(CGRect)frame {
    if (self = [super initWithFrame:frame]) {
        // Initialization code
    }
    return self;
}


- (void)drawRect:(CGRect)rect {
    // Drawing code
}


- (void)dealloc {
    [super dealloc];
}

@end


다음과 같이 변경하였습니다

//
//  «FILENAME»
//  «PROJECTNAME»
//
//  Created by «FULLUSERNAME» on «DATE».
//  Copyright «YEAR» «ORGANIZATIONNAME». All rights reserved.
//
«OPTIONALHEADERIMPORTLINE»
@implementation «FILEBASENAMEASIDENTIFIER»

- (id)initWithFrame:(CGRect)frame
{
        if (self = [super initWithFrame:frame])
        {
                // Initialization code
        }
        return self;
}

- (void)drawRect:(CGRect)rect
{
        // Drawing code
}

- (void)dealloc
{
        [super dealloc];
}

@end


변경하고 나서 UIView 클래스를 생성하면 깔끔한 코드가 나옵니다.
나머지 클래스들도 동일한 방법으로 수정하시면 됩니다.

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2009/08/10 13:46 2009/08/10 13:46
,
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/240

Xcode에서 파일이나 객체를 추가하였을 경우에 자동으로 생성되는 주석이 있습니다.

다음과 같이 말이죠.

//
//  TestProject.h
//  TestProject
//
//  Created by Hyun Jun Jang on 09. 08. 10.
//  Copyright 2009 CompanyName. All rights reserved.
//


여기서 다음과 같은 명령을 통해 CompanyName 부분을 다른 문자열로 변경할 수 있습니다.

defaults write com.apple.Xcode PBXCustomTemplateMacroDefinitions '{ORGANIZATIONNAME="CompanyName";}'
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2009/08/10 13:29 2009/08/10 13:29
,
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/239

Xcode Key Binding 정보 백업하기 (Xcode 3.1.3)

Xcode에서 힘들게 세팅해놓은 key binding정보를 백업하는 방법은 다음과 같습니다:

/Users/<사용자 이름>/Library/Application Support/Xcode/Key Bindings


로 이동 후, 원하시는 pbxkeys 파일을 백업하시면 됩니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 장현준

2009/03/31 14:52 2009/03/31 14:52
,
Response
No Trackback , No Comment
RSS :
http://b4you.net/blog/rss/response/212


블로그 이미지

빗소리를 먹는 사람.

- 장현준

Notices

Archives

Authors

  1. 장현준

Recent Trackbacks

Calendar

«   2017/10   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        

Site Stats

Total hits:
1805219
Today:
1493
Yesterday:
4622