Skip to content

Commit

Permalink
Configuration Window 기초
Browse files Browse the repository at this point in the history
창이 중복해서 뜨는 문제가 있지만 기본적인 동작은 합니다
  • Loading branch information
youknowone committed Nov 4, 2019
1 parent 14de2f4 commit 7c524d5
Show file tree
Hide file tree
Showing 11 changed files with 112 additions and 18 deletions.
10 changes: 9 additions & 1 deletion Gureum.xcodeproj/project.pbxproj
Expand Up @@ -69,6 +69,8 @@
386ECB8621537DEA0060D9BE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 386ECB8521537DEA0060D9BE /* Assets.xcassets */; }; 386ECB8621537DEA0060D9BE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 386ECB8521537DEA0060D9BE /* Assets.xcassets */; };
386ECB8921537DEA0060D9BE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 386ECB8721537DEA0060D9BE /* Main.storyboard */; }; 386ECB8921537DEA0060D9BE /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 386ECB8721537DEA0060D9BE /* Main.storyboard */; };
386ECBB1215385720060D9BE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 38162DF9141263280077AA2D /* InfoPlist.strings */; }; 386ECBB1215385720060D9BE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 38162DF9141263280077AA2D /* InfoPlist.strings */; };
38710C02236EE8ED00405D41 /* Configuration.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 38710C01236EE8ED00405D41 /* Configuration.storyboard */; };
38710C06236EE9A100405D41 /* ConfigurationWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = 38710C05236EE9A100405D41 /* ConfigurationWindow.swift */; };
3881866421EB23F3004B7FDB /* MockInputClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 3881866221EB239E004B7FDB /* MockInputClient.m */; }; 3881866421EB23F3004B7FDB /* MockInputClient.m in Sources */ = {isa = PBXBuildFile; fileRef = 3881866221EB239E004B7FDB /* MockInputClient.m */; };
3881867E21EB2D7D004B7FDB /* OSXCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 3881867C21EB2D7D004B7FDB /* OSXCore.h */; settings = {ATTRIBUTES = (Public, ); }; }; 3881867E21EB2D7D004B7FDB /* OSXCore.h in Headers */ = {isa = PBXBuildFile; fileRef = 3881867C21EB2D7D004B7FDB /* OSXCore.h */; settings = {ATTRIBUTES = (Public, ); }; };
3881868121EB2D7D004B7FDB /* GureumCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3881867A21EB2D7D004B7FDB /* GureumCore.framework */; }; 3881868121EB2D7D004B7FDB /* GureumCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3881867A21EB2D7D004B7FDB /* GureumCore.framework */; };
Expand Down Expand Up @@ -327,6 +329,8 @@
386ECB8521537DEA0060D9BE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; }; 386ECB8521537DEA0060D9BE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
386ECB8821537DEA0060D9BE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; }; 386ECB8821537DEA0060D9BE /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
386ECB8A21537DEA0060D9BE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; }; 386ECB8A21537DEA0060D9BE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
38710C01236EE8ED00405D41 /* Configuration.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Configuration.storyboard; sourceTree = "<group>"; };
38710C05236EE9A100405D41 /* ConfigurationWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationWindow.swift; sourceTree = "<group>"; };
3881866121EB239D004B7FDB /* MockInputClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MockInputClient.h; sourceTree = "<group>"; }; 3881866121EB239D004B7FDB /* MockInputClient.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MockInputClient.h; sourceTree = "<group>"; };
3881866221EB239E004B7FDB /* MockInputClient.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MockInputClient.m; sourceTree = "<group>"; }; 3881866221EB239E004B7FDB /* MockInputClient.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MockInputClient.m; sourceTree = "<group>"; };
3881866521EB24CA004B7FDB /* Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Bridge.h; path = GureumTests/Bridge.h; sourceTree = SOURCE_ROOT; }; 3881866521EB24CA004B7FDB /* Bridge.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Bridge.h; path = GureumTests/Bridge.h; sourceTree = SOURCE_ROOT; };
Expand Down Expand Up @@ -482,6 +486,8 @@
38475AEB14129BAA0062100D /* Icons */, 38475AEB14129BAA0062100D /* Icons */,
38162DF7141263280077AA2D /* Supporting Files */, 38162DF7141263280077AA2D /* Supporting Files */,
38098F09215A3DB30001F159 /* Assets.xcassets */, 38098F09215A3DB30001F159 /* Assets.xcassets */,
38710C01236EE8ED00405D41 /* Configuration.storyboard */,
38710C05236EE9A100405D41 /* ConfigurationWindow.swift */,
); );
path = OSX; path = OSX;
sourceTree = "<group>"; sourceTree = "<group>";
Expand Down Expand Up @@ -600,6 +606,7 @@
3881867B21EB2D7D004B7FDB /* OSXCore */ = { 3881867B21EB2D7D004B7FDB /* OSXCore */ = {
isa = PBXGroup; isa = PBXGroup;
children = ( children = (
38BFE81F18B4F181004B2B2E /* NSPrefPaneBundle.h */,
3881867C21EB2D7D004B7FDB /* OSXCore.h */, 3881867C21EB2D7D004B7FDB /* OSXCore.h */,
3881867D21EB2D7D004B7FDB /* Info.plist */, 3881867D21EB2D7D004B7FDB /* Info.plist */,
381DB19A21678B74005A37B9 /* Debug.swift */, 381DB19A21678B74005A37B9 /* Debug.swift */,
Expand Down Expand Up @@ -693,7 +700,6 @@
388186B321EB4E4C004B7FDB /* MockApp.swift */, 388186B321EB4E4C004B7FDB /* MockApp.swift */,
3881866121EB239D004B7FDB /* MockInputClient.h */, 3881866121EB239D004B7FDB /* MockInputClient.h */,
3881866221EB239E004B7FDB /* MockInputClient.m */, 3881866221EB239E004B7FDB /* MockInputClient.m */,
38BFE81F18B4F181004B2B2E /* NSPrefPaneBundle.h */,
38BFE80318B45419004B2B2E /* GureumObjCTests.m */, 38BFE80318B45419004B2B2E /* GureumObjCTests.m */,
38BFE7FE18B45419004B2B2E /* Supporting Files */, 38BFE7FE18B45419004B2B2E /* Supporting Files */,
); );
Expand Down Expand Up @@ -977,6 +983,7 @@
isa = PBXResourcesBuildPhase; isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
files = ( files = (
38710C02236EE8ED00405D41 /* Configuration.storyboard in Resources */,
382E68761A13156700031D1D /* Preferences.prefPane in Resources */, 382E68761A13156700031D1D /* Preferences.prefPane in Resources */,
38162DFB141263280077AA2D /* InfoPlist.strings in Resources */, 38162DFB141263280077AA2D /* InfoPlist.strings in Resources */,
38162E4814128A740077AA2D /* MainMenu.xib in Resources */, 38162E4814128A740077AA2D /* MainMenu.xib in Resources */,
Expand Down Expand Up @@ -1243,6 +1250,7 @@
38B9547B229ED9BC00A9D6E1 /* AnswersHelper.swift in Sources */, 38B9547B229ED9BC00A9D6E1 /* AnswersHelper.swift in Sources */,
E5A0EA0A2139098800D4AD69 /* GureumAppDelegate.swift in Sources */, E5A0EA0A2139098800D4AD69 /* GureumAppDelegate.swift in Sources */,
38F85961215BD27000CD80AE /* main.swift in Sources */, 38F85961215BD27000CD80AE /* main.swift in Sources */,
38710C06236EE9A100405D41 /* ConfigurationWindow.swift in Sources */,
3831983C21DB744900E20D78 /* UpdateManager.swift in Sources */, 3831983C21DB744900E20D78 /* UpdateManager.swift in Sources */,
388186AC21EB3FDD004B7FDB /* Debug.swift in Sources */, 388186AC21EB3FDD004B7FDB /* Debug.swift in Sources */,
E5ED2DE4213030B700BD9B13 /* GureumMenu.swift in Sources */, E5ED2DE4213030B700BD9B13 /* GureumMenu.swift in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion GureumTests/Bridge.h
Expand Up @@ -7,4 +7,4 @@
// //


#import "MockInputClient.h" #import "MockInputClient.h"
#import "NSPrefPaneBundle.h" #import "OSXCore/NSPrefPaneBundle.h"
2 changes: 1 addition & 1 deletion GureumTests/GureumObjCTests.m
Expand Up @@ -8,7 +8,7 @@


@import XCTest; @import XCTest;


#import "NSPrefPaneBundle.h" #import "OSXCore/NSPrefPaneBundle.h"
#import "Gureum-Swift.h" #import "Gureum-Swift.h"




Expand Down
1 change: 1 addition & 0 deletions OSX/Bridge.h
Expand Up @@ -3,3 +3,4 @@
// //


#import "TISInputSource.h" #import "TISInputSource.h"
#import "OSXCore/NSPrefPaneBundle.h"
38 changes: 38 additions & 0 deletions OSX/Configuration.storyboard
@@ -0,0 +1,38 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.Storyboard.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" initialViewController="pWa-Qg-gE8">
<dependencies>
<deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/>
</dependencies>
<scenes>
<!--Window Controller-->
<scene sceneID="lqC-Y3-iGO">
<objects>
<windowController id="pWa-Qg-gE8" customClass="ConfiguraionWindowController" customModule="Gureum" customModuleProvider="target" sceneMemberID="viewController">
<window key="window" title="구름 환경설정" allowsToolTipsWhenApplicationIsInactive="NO" autorecalculatesKeyViewLoop="NO" releasedWhenClosed="NO" visibleAtLaunch="NO" frameAutosaveName="" animationBehavior="default" id="66I-Xz-bUA">
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="245" y="301" width="480" height="270"/>
<rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
<connections>
<outlet property="delegate" destination="pWa-Qg-gE8" id="aoC-1O-t14"/>
</connections>
</window>
<connections>
<segue destination="eDV-rs-6D0" kind="relationship" relationship="window.shadowedContentViewController" id="vdX-Ok-Cxc"/>
</connections>
</windowController>
<customObject id="qIu-Nc-pzg" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="-48" y="70"/>
</scene>
<!--Preference View Controller-->
<scene sceneID="bc9-Ml-T2f">
<objects>
<viewController id="eDV-rs-6D0" customClass="PreferenceViewController" customModule="Gureum" customModuleProvider="target" sceneMemberID="viewController"/>
<customObject id="Z4u-jb-X27" userLabel="First Responder" customClass="NSResponder" sceneMemberID="firstResponder"/>
</objects>
<point key="canvasLocation" x="567" y="70"/>
</scene>
</scenes>
</document>
33 changes: 33 additions & 0 deletions OSX/ConfigurationWindow.swift
@@ -0,0 +1,33 @@
//
// ConfigurationWindow.swift
// OSX
//
// Created by Jeong YunWon on 2019/11/03.
// Copyright © 2019 youknowone.org. All rights reserved.
//

import Cocoa
import Foundation

class ConfiguraionWindowController: NSWindowController {}

class PreferenceViewController: NSViewController {
private let _isAtLeast10_15 = ProcessInfo().isOperatingSystemAtLeast(OperatingSystemVersion(majorVersion: 10, minorVersion: 15, patchVersion: 0))

override func loadView() {
let path = Bundle.main.path(forResource: "Preferences", ofType: "prefPane")
let bundle = NSPrefPaneBundle(path: path)!
assert(bundle.bundle != nil)
assert(bundle.bundle.principalClass != nil)
if _isAtLeast10_15 {
let pane = NSPreferencePane(bundle: bundle.bundle)
pane.loadMainView()
view = pane.mainView
} else {
let loaded = bundle.instantiatePrefPaneObject()
assert(loaded)
let pane = bundle.prefPaneObject()!
view = pane.mainView
}
}
}
7 changes: 7 additions & 0 deletions OSX/GureumMenu.swift
Expand Up @@ -18,6 +18,13 @@ extension InputController {
answers.logMenu(name: "about") answers.logMenu(name: "about")
} }


@IBAction func showPreferencesWindow(_: Any) {
NSApp.activate(ignoringOtherApps: true)
let main = NSStoryboard(name: "Configuration", bundle: Bundle.main).instantiateInitialController() as! NSWindowController
NSLog("main: \(main)")
main.showWindow(nil)
}

@IBAction func checkRecentVersion(_: Any) { @IBAction func checkRecentVersion(_: Any) {
answers.logMenu(name: "check-version") answers.logMenu(name: "check-version")
guard let info = UpdateManager.shared.fetchOfficialVersionInfo() else { guard let info = UpdateManager.shared.fetchOfficialVersionInfo() else {
Expand Down
11 changes: 9 additions & 2 deletions OSX/MainMenu.xib
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/>
</dependencies> </dependencies>
<objects> <objects>
<customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/> <customObject id="-2" userLabel="File's Owner" customClass="NSApplication"/>
Expand All @@ -25,6 +25,12 @@
<action selector="showStandardAboutPanel:" target="-1" id="yba-6W-HBg"/> <action selector="showStandardAboutPanel:" target="-1" id="yba-6W-HBg"/>
</connections> </connections>
</menuItem> </menuItem>
<menuItem title="환경설정..." id="b3F-HH-DpK">
<modifierMask key="keyEquivalentModifierMask"/>
<connections>
<action selector="showPreferencesWindow:" target="-1" id="yCC-7G-ltn"/>
</connections>
</menuItem>
<menuItem title="업데이트 확인" id="557"> <menuItem title="업데이트 확인" id="557">
<modifierMask key="keyEquivalentModifierMask"/> <modifierMask key="keyEquivalentModifierMask"/>
<connections> <connections>
Expand Down Expand Up @@ -69,6 +75,7 @@
</connections> </connections>
</menuItem> </menuItem>
</items> </items>
<point key="canvasLocation" x="139" y="152"/>
</menu> </menu>
</objects> </objects>
</document> </document>
File renamed without changes.
2 changes: 1 addition & 1 deletion OSXTestApp/OSXTestApp-Bridging-Header.h
Expand Up @@ -3,4 +3,4 @@
// //


#import "MockInputClient.h" #import "MockInputClient.h"
#import "GureumTests/NSPrefPaneBundle.h" #import "OSXCore/NSPrefPaneBundle.h"
24 changes: 12 additions & 12 deletions Preferences/Base.lproj/Preferences.xib
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="14490.70" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct"> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="15505" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES" customObjectInstantitationMethod="direct">
<dependencies> <dependencies>
<deployment identifier="macosx"/> <deployment identifier="macosx"/>
<plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="14490.70"/> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="15505"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/> <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies> </dependencies>
<objects> <objects>
Expand All @@ -17,7 +17,7 @@
<windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/> <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES"/>
<windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/> <windowPositionMask key="initialPositionMask" leftStrut="YES" rightStrut="YES" topStrut="YES" bottomStrut="YES"/>
<rect key="contentRect" x="176" y="715" width="400" height="618"/> <rect key="contentRect" x="176" y="715" width="400" height="618"/>
<rect key="screenRect" x="0.0" y="0.0" width="2560" height="1417"/> <rect key="screenRect" x="0.0" y="0.0" width="1680" height="1027"/>
<view key="contentView" misplaced="YES" id="se5-gp-TjO"> <view key="contentView" misplaced="YES" id="se5-gp-TjO">
<rect key="frame" x="0.0" y="0.0" width="400" height="618"/> <rect key="frame" x="0.0" y="0.0" width="400" height="618"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
Expand All @@ -29,24 +29,24 @@
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<view translatesAutoresizingMaskIntoConstraints="NO" id="Mwx-RP-qRv"> <view translatesAutoresizingMaskIntoConstraints="NO" id="Mwx-RP-qRv">
<rect key="frame" x="0.0" y="-250" width="400" height="550"/> <rect key="frame" x="0.0" y="-265" width="393" height="550"/>
<subviews> <subviews>
<stackView distribution="fillEqually" orientation="vertical" alignment="leading" spacing="20" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kLe-bm-FOO"> <stackView distribution="fillEqually" orientation="vertical" alignment="leading" spacing="20" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="kLe-bm-FOO">
<rect key="frame" x="20" y="7" width="360" height="526"/> <rect key="frame" x="20" y="13" width="353" height="520"/>
<subviews> <subviews>
<stackView distribution="fill" orientation="vertical" alignment="leading" spacing="11" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4Td-o5-z1h"> <stackView distribution="fill" orientation="vertical" alignment="leading" spacing="11" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4Td-o5-z1h">
<rect key="frame" x="0.0" y="415" width="360" height="111"/> <rect key="frame" x="0.0" y="413" width="353" height="107"/>
<subviews> <subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DRr-ZG-wMG"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="DRr-ZG-wMG">
<rect key="frame" x="-2" y="94" width="101" height="17"/> <rect key="frame" x="-2" y="91" width="102" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="시스템 단축키 설정" id="45X-EX-BbZ"> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="시스템 단축키 설정" id="45X-EX-BbZ">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell> </textFieldCell>
</textField> </textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kC8-kH-2z7" userLabel="단축키 설정 설명"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="kC8-kH-2z7" userLabel="단축키 설정 설명">
<rect key="frame" x="-2" y="32" width="338" height="51"/> <rect key="frame" x="-2" y="32" width="343" height="48"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="시스템 환경설정 → 키보드 → 단축키 → 입력 소스에서 설정
⇧스페이스와 같이 ⇧가 포함된 단축키로 설정하려면 Fn 키와 함께
눌러주세요. (예: Fn+⇧+스페이스)" id="Ndr-tA-evW"> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="시스템 환경설정 → 키보드 → 단축키 → 입력 소스에서 설정
⇧스페이스와 같이 ⇧가 포함된 단축키로 설정하려면 Fn 키와 함께
눌러주세요. (예: Fn+⇧+스페이스)" id="Ndr-tA-evW">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
Expand Down Expand Up @@ -76,21 +76,21 @@
</customSpacing> </customSpacing>
</stackView> </stackView>
<stackView distribution="fill" orientation="vertical" alignment="leading" spacing="11" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zbm-lz-J9a"> <stackView distribution="fill" orientation="vertical" alignment="leading" spacing="11" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="zbm-lz-J9a">
<rect key="frame" x="0.0" y="166" width="352" height="229"/> <rect key="frame" x="0.0" y="165" width="353" height="228"/>
<subviews> <subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yjR-ur-FpL"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yjR-ur-FpL">
<rect key="frame" x="-2" y="212" width="116" height="17"/> <rect key="frame" x="-2" y="212" width="116" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="한글 입력기 고급 설정" id="HIp-u9-CIf"> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" enabled="NO" sendsActionOnEndEditing="YES" title="한글 입력기 고급 설정" id="HIp-u9-CIf">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/> <color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell> </textFieldCell>
</textField> </textField>
<stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="80" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4dQ-Ty-1Es"> <stackView distribution="fill" orientation="horizontal" alignment="centerY" spacing="80" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="4dQ-Ty-1Es">
<rect key="frame" x="0.0" y="181" width="352" height="20"/> <rect key="frame" x="0.0" y="181" width="353" height="20"/>
<subviews> <subviews>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YGK-Vi-f1X"> <textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="YGK-Vi-f1X">
<rect key="frame" x="-2" y="2" width="116" height="17"/> <rect key="frame" x="-2" y="2" width="117" height="16"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="⌥(option) 키 동작:" id="jWu-1H-vJQ"> <textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="⌥(option) 키 동작:" id="jWu-1H-vJQ">
<font key="font" metaFont="system"/> <font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
Expand Down

0 comments on commit 7c524d5

Please sign in to comment.