수 있습니다. 또한 GitHub 인터페이스의 "Switch branches/tags" 드롭다운 메뉴에서도
사용 중인 Electron 버전으로 변경할 수 있습니다.
-**역주:** 한국어 번역 문서는 `atom.io`에 반영되어 있지 않습니다. 한국어 번역 문서는
+**ì\97ì\9e\90주:** í\95\9cêµì\96´ ë²\88ì\97 문ì\84\9cë\8a\94 `atom.io`ì\97\90 ë°\98ì\98\81ë\90\98ì\96´ ì\9e\88ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤. í\95\9cêµì\96´ ë²\88ì\97 문ì\84\9cë\8a\94
현재 `upstream` 원본 문서의 변경에 따라 최대한 문서의 버전을 맞추려고 노력하고 있지만
가끔 누락된 번역이 존재할 수 있습니다.
그리고 `will-quit` 이벤트가 발생했을 땐 `window-all-closed` 이벤트가 발생하지
않습니다.
-**역주:** 이 이벤트는 말 그대로 현재 애플리케이션에서 윈도우만 완전히 종료됬을 때
+**ì\97ì\9e\90주:** ì\9d´ ì\9d´ë²¤í\8a¸ë\8a\94 ë§\90 ê·¸ë\8c\80ë¡\9c í\98\84ì\9e¬ ì\95 í\94\8c리ì¼\80ì\9d´ì\85\98ì\97\90ì\84\9c ì\9c\88ë\8f\84ì\9a°ë§\8c ì\99\84ì \84í\9e\88 ì¢\85ë£\8cë\90¬ì\9d\84 ë\95\8c
발생하는 이벤트입니다. 따라서 애플리케이션을 완전히 종료하려면 이 이벤트에서
`app.quit()`를 호출해 주어야 합니다.
[browserWindow](browser-window.md)에 대한 포커스가 발생했을 때 발생하는 이벤트입니다.
-**역주:** _포커스_ 는 창을 클릭해서 활성화 시켰을 때를 말합니다.
+**ì\97ì\9e\90주:** _í\8f¬ì»¤ì\8a¤_ ë\8a\94 ì°½ì\9d\84 í\81´ë¦í\95´ì\84\9c í\99\9cì\84±í\99\94 ì\8b\9cì¼°ì\9d\84 ë\95\8c를 ë§\90í\95©ë\8b\88ë\8b¤.
### Event: 'browser-window-created'
`name`에 관련한 특정 디렉터리 또는 파일의 경로를 반환합니다.
경로를 가져오는 데 실패할 경우 `Error`를 반환합니다.
-**역주:** 이 메서드는 운영체제에서 지정한 특수 디렉터리를 가져오는데 사용할 수 있습니다.
+**ì\97ì\9e\90주:** ì\9d´ ë©\94ì\84\9cë\93\9cë\8a\94 ì\9a´ì\98\81ì²´ì \9cì\97\90ì\84\9c ì§\80ì \95í\95\9c í\8a¹ì\88\98 ë\94\94ë \89í\84°ë¦¬ë¥¼ ê°\80ì ¸ì\98¤ë\8a\94ë\8d° ì\82¬ì\9a©í\95 ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.
`name`은 다음 목록에 있는 경로 중 하나를 선택해 사용할 수 있습니다:
### `win.showDefinitionForSelection()` _OS X_
-페이지의 선택된 단어에 대한 사전 검색 결과 팝업을 표시합니다.
+`webContents.showDefinitionForSelection()`와 같습니다.
### `win.setIcon(icon)` _Windows_ _Linux_
메뉴 막대의 표시 여부를 설정합니다. 만약 메뉴 막대 자동 숨김 상태라면 여전히 사용자가
`Alt` 키를 입력하여 메뉴 막대를 표시되도록 할 수 있습니다.
-**역주:** 기본 메뉴 막대를 완전히 없애려면 `win.setMenu(null)`를 호출해야 합니다.
+**ì\97ì\9e\90주:** 기본 ë©\94ë\89´ ë§\89ë\8c\80를 ì\99\84ì \84í\9e\88 ì\97\86ì\95 ë ¤ë©´ `win.setMenu(null)`를 í\98¸ì¶\9cí\95´ì\95¼ í\95©ë\8b\88ë\8b¤.
단순히 이 API를 사용하면 여전히 메뉴에 등록된 핫 키가 작동합니다.
### `win.isMenuBarVisible()`
**참고:** 이 API는 Windows에서 언제나 false를 반환합니다.
-### `win.setIgnoreMouseEvents(ignore)` _OS X_
+### `win.setIgnoreMouseEvents(ignore)`
* `ignore` Boolean
-윈도우에서 일어나는 모든 마우스 이벤트를 무시합니다.
+윈도우가 모든 마우스 이벤트를 무시하게 만듭니다.
+
+이 윈도우에서 일어나는 모든 마우스 이벤트가 이 윈도우 밑의 윈도우로 전달됩니다. 하지만
+이 윈도우가 포커스되어 있다면, 여전히 키보드 이벤트는 받을 수 있습니다.
[blink-feature-string]: https://code.google.com/p/chromium/codesearch#chromium/src/out/Debug/gen/blink/platform/RuntimeEnabledFeatures.cpp&sq=package:chromium&type=cs&l=576
대화 상자를 표시합니다. `browserWindow`를 지정하면 대화 상자가 완전히 닫힐 때까지
지정한 창을 사용할 수 없습니다. 완료 시 유저가 선택한 버튼의 인덱스를 반환합니다.
-**역주:** 부정을 표현하는 "아니오", "취소"와 같은 한글 단어는 지원되지 않습니다. 만약
+**ì\97ì\9e\90주:** ë¶\80ì \95ì\9d\84 í\91\9cí\98\84í\95\98ë\8a\94 "ì\95\84ë\8b\88ì\98¤", "ì·¨ì\86\8c"ì\99\80 ê°\99ì\9d\80 í\95\9cê¸\80 ë\8b¨ì\96´ë\8a\94 ì§\80ì\9b\90ë\90\98ì§\80 ì\95\8aì\8aµë\8b\88ë\8b¤. ë§\8cì\95½
OS X 또는 Windows에서 "확인", "취소"와 같은 순서로 버튼을 지정하게 될 때 Alt + f4로
해당 대화 상자를 끄게 되면 "확인"을 누른 것으로 판단되어 버립니다. 이를 해결하려면
"Cancel"을 대신 사용하거나 BrowserWindow API를 사용하여 대화 상자를 직접 구현해야
`options` 객체에서 `frame` 옵션을 `false`로 지정하면 됩니다:
```javascript
-const {BrowserWindow} = require('electron');
-let win = new BrowserWindow({width: 800, height: 600, frame: false});
+const {BrowserWindow} = require('electron')
+let win = new BrowserWindow({width: 800, height: 600, frame: false})
```
### 최신 OS X에서 사용할 수 있는 대안
("신호등 버튼")의 기능과 창 크기를 그대로 유지할 수 있습니다:
```javascript
-let win = new BrowserWindow({titleBarStyle: 'hidden'});
+let win = new BrowserWindow({titleBarStyle: 'hidden'})
```
## 투명한 창 만들기
바꿔주기만 하면됩니다:
```javascript
-let win = new BrowserWindow({transparent: true, frame: false});
+let win = new BrowserWindow({transparent: true, frame: false})
```
### API의 한계
사용을 중단하고 윈도우를 생성하는데 ARGB를 사용할 수 있도록 해줍니다.
* OS X(Mac)에선 네이티브 창에서 보여지는 그림자가 투명한 창에선 보이지 않습니다.
+## 클릭이 통과될 수 있는 윈도우
+
+클릭이 통과될 수 있는 윈도우를 만드려면, i.e. 모든 마우스 이벤트를 무시하는 윈도우를
+만드려면, [win.setIgnoreMouseEvents(ignore)][ignore-mouse-events] API를 사용하여
+구현할 수 있습니다:
+
+```javascript
+win.setIgnoreMouseEvents(true)
+```
+
## 드래그 가능 위치 지정
기본적으로 Frameless Window는 드래그 할 수 없습니다. 애플리케이션의 CSS에서 특정
드래그 가능 영역에서 오른쪽 클릭 할 경우 시스템 메뉴가 팝업 됩니다. 이러한 이유로
컨텍스트 메뉴 지정 시 모든 플랫폼에서 정상적으로 작동하게 하려면 커스텀 컨텍스트 메뉴를
드래그 영역 내에 만들어선 안됩니다.
+
+[ignore-mouse-events]: browser-window.md#winsetignoremouseeventsignore
`path`로부터 이미지를 로드하여 새로운 `nativeImage` 인스턴스를 만듭니다.
+```javascript
+const nativeImage = require('electron').nativeImage;
+
+let image = nativeImage.createFromPath('/Users/somebody/images/icon.png');
+```
+
### `nativeImage.createFromBuffer(buffer[, scaleFactor])`
* `buffer` [Buffer][buffer]
## Instance Methods
-`nativeImage` 인스턴스 객체에서 사용할 수 있는 메서드 입니다:
-
-```javascript
-const nativeImage = require('electron').nativeImage;
-let image = nativeImage.createFromPath('/Users/somebody/images/icon.png');
-```
+`nativeImage` 인스턴스 객체에서 사용할 수 있는 메서드입니다.
### `image.toPng()`
상속 받았습니다.
**참고:** 렌더러 / DevTools에선 이미 DOM 속성이 `window.screen`을 가지고 있으므로
-`screen = require('screen')` 형식으로 모듈을 사용할 수 없습니다. 아래의 예시와 같이
-`electronScreen` 같은 이름으로 모듈 이름을 대체하여 사용해야 합니다.
+`screen = require('screen')` 형식으로 모듈을 사용할 수 없습니다.
다음 예시는 화면 전체를 채우는 윈도우 창을 생성합니다:
+
```javascript
-const {app, BrowserWindow, screen: electronScreen} = require('electron');
+const electron = require('electron')
+const {app, BrowserWindow} = electron
-let win;
+let win
app.on('ready', () => {
- let {width, height} = electronScreen.getPrimaryDisplay().workAreaSize;
- win = new BrowserWindow({width, height});
+ const {width, height} = electron.screen.getPrimaryDisplay().workAreaSize
+ win = new BrowserWindow({width, height})
});
```
다음 예시는 확장 디스플레이에 윈도우를 생성합니다:
```javascript
-const {app, BrowserWindow, screen: electronScreen} = require('electron');
+const electron = require('electron')
+const {app, BrowserWindow} = require('electron')
-let win;
+let win
app.on('ready', () => {
- let displays = electronScreen.getAllDisplays();
- let externalDisplay = null;
- for (let i in displays) {
- if (displays[i].bounds.x !== 0 || displays[i].bounds.y !== 0) {
- externalDisplay = displays[i];
- break;
- }
- }
+ let displays = electron.screen.getAllDisplays()
+ let externalDisplay = displays.find((display) => {
+ return display.bounds.x !== 0 || display.bounds.y !== 0
+ })
if (externalDisplay) {
win = new BrowserWindow({
x: externalDisplay.bounds.x + 50,
y: externalDisplay.bounds.y + 50
- });
+ })
}
-});
+})
```
## `Display` 객체
mailto: URL은 유저의 기본 이메일 에이전트로 URL을 엽니다.) 애플리케이션이 해당 URL을
열 수 있을 때 `true`를 반환합니다. 아니라면 `false`를 반환합니다.
-**역주:** 탐색기로 폴더만 표시하려면 `'file://경로'`와 같이 지정하여 열 수 있습니다.
+**ì\97ì\9e\90주:** í\83\90ì\83\89기ë¡\9c í\8f´ë\8d\94ë§\8c í\91\9cì\8b\9cí\95\98ë ¤ë©´ `'file://ê²½ë¡\9c'`ì\99\80 ê°\99ì\9d´ ì§\80ì \95í\95\98ì\97¬ ì\97´ ì\88\98 ì\9e\88ì\8aµë\8b\88ë\8b¤.
### `shell.moveItemToTrash(fullPath)`
Returns:
* `event` Event
-* `url` URL
+* `url` String
-마우스나 키보드를 사용해 링크에 포커스를 할 때 발생하는 이벤트입니다.
+마우스나 키보드를 사용해 링크에 포커스할 때 발생하는 이벤트입니다.
### Event: 'cursor-changed'
});
```
+### `webContents.showDefinitionForSelection()` _OS X_
+
+페이지에서 선택된 단어에 대한 사전 검색 결과 팝업을 표시합니다.
+
## Instance Properties
`WebContents`객체들은 다음 속성들을 가지고 있습니다:
이 옵션을 활성화 시키면 `requestFullScreen`와 같은 HTML API에서 유저의 승인을
무시하고 개발자가 API를 바로 사용할 수 있도록 허용합니다.
-**역주:** 기본적으로 브라우저에선 전체화면, 웹캠, 파일 열기등의 API를 사용하려면 유저의
+**ì\97ì\9e\90주:** 기본ì \81ì\9c¼ë¡\9c ë¸\8cë\9d¼ì\9a°ì \80ì\97\90ì\84 ì \84ì²´í\99\94ë©´, ì\9b¹ìº , í\8c\8cì\9d¼ ì\97´ê¸°ë\93±ì\9d\98 API를 ì\82¬ì\9a©í\95\98ë ¤ë©´ ì\9c ì \80ì\9d\98
승인(이벤트)이 필요합니다.
### `<webview>.openDevTools()`
`event` 객체에 대해 자세히 알아보려면 [webContents.sendInputEvent](web-contents.md##webcontentssendinputeventevent)를
참고하세요.
+### `<webview>.showDefinitionForSelection()` _OS X_
+
+페이지에서 선택된 단어에 대한 사전 검색 결과 팝업을 표시합니다.
+
### `<webview>.getWebContents()`
이 `webview`에 해당하는 [WebContents](web-contents.md)를 반환합니다.
```html
<meta name='theme-color' content='#ff0000'>
```
+
+### Event: 'update-target-url'
+
+Returns:
+
+* `url` String
+
+마우스나 키보드를 사용해 링크에 포커스할 때 발생하는 이벤트입니다.
+
### Event: 'devtools-opened'
개발자 도구가 열렸을 때 발생하는 이벤트입니다.
ERN의 승인을 얻는 방법은, 다음 글을 참고하는 것이 좋습니다:
[애플리케이션이 암호화를 사용할 때, 합법적으로 Apple의 앱 스토어에 제출하는 방법 (또는 ERN의 승인을 얻는 방법)][ern-tutorial].
-**역주:** [Mac 앱 배포 가이드 공식 한국어 문서](https://developer.apple.com/osx/distribution/kr/)
+**ì\97ì\9e\90주:** [Mac ì\95± ë°°í\8f¬ ê°\80ì\9d´ë\93\9c ê³µì\8b\9d í\95\9cêµì\96´ 문ì\84\9c](https://developer.apple.com/osx/distribution/kr/)
[developer-program]: https://developer.apple.com/support/compare-memberships/
[submitting-your-app]: https://developer.apple.com/library/mac/documentation/IDEs/Conceptual/AppDistributionGuide/SubmittingYourApp/SubmittingYourApp.html
[Node.js](https://nodejs.org/en/download/)가 필요합니다. (CLI에서 실행 가능한
[npm](https://npmjs.org)이 있어야 합니다)
-**역주**: `npm`은 보통 Node.js를 설치하면 자동으로 같이 설치됩니다.
+**ì\97ì\9e\90주**: `npm`ì\9d\80 ë³´í\86µ Node.js를 ì\84¤ì¹\98í\95\98ë©´ ì\9e\90ë\8f\99ì\9c¼ë¡\9c ê°\99ì\9d´ ì\84¤ì¹\98ë\90©ë\8b\88ë\8b¤.
```bash
# 저장소를 클론합니다