Optimize server profile layout.

This commit is contained in:
Qiu Yuzhou
2017-03-23 23:19:42 +08:00
parent ead31e6dcf
commit 6339000797
2 changed files with 142 additions and 85 deletions

View File

@ -18,6 +18,7 @@
<outlet property="kcptunModeComboBox" destination="WNY-EE-WjA" id="8dJ-nb-kFV"/>
<outlet property="kcptunNocompCheckBoxBtn" destination="WiD-LX-WHu" id="whG-WJ-qyh"/>
<outlet property="kcptunParityshardTextField" destination="8hC-op-kWY" id="0Hd-X7-T39"/>
<outlet property="kcptunPortTextField" destination="JNT-U1-Ao5" id="tpy-nE-j9f"/>
<outlet property="kcptunProfileBox" destination="WE7-7J-vda" id="HlV-ET-fgs"/>
<outlet property="methodTextField" destination="ef4-8J-eFn" id="OXd-fC-ICR"/>
<outlet property="otaCheckBoxBtn" destination="9CP-zt-WuH" id="egZ-KB-iSv"/>
@ -108,9 +109,9 @@
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="Otb-CO-KUH">
<rect key="frame" x="239" y="386" width="9" height="17"/>
<rect key="frame" x="238" y="386" width="9" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="5" id="cDc-Wc-oW2"/>
<constraint firstAttribute="width" constant="5" id="6KY-1R-9Nf"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title=":" id="Ibr-Gs-5Js">
<font key="font" metaFont="system"/>
@ -118,23 +119,6 @@
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lng-AE-g0J">
<rect key="frame" x="253" y="381" width="46" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="46" id="zGr-QU-b7G"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="port" drawsBackground="YES" id="e1F-jd-e0J">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
<allowedInputSourceLocales>
<string>NSAllRomanInputSourcesLocaleIdentifier</string>
</allowedInputSourceLocales>
</textFieldCell>
<connections>
<outlet property="formatter" destination="QZc-kt-D7Z" id="ZB9-Of-Xi9"/>
</connections>
</textField>
<comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="ef4-8J-eFn">
<rect key="frame" x="111" y="349" width="191" height="26"/>
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="11" id="5Qb-ey-uS5">
@ -187,8 +171,8 @@
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="R4F-j7-GkK">
<rect key="frame" x="111" y="381" width="122" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="ip" drawsBackground="YES" id="MWO-hQ-nMt">
<rect key="frame" x="111" y="381" width="121" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="IP" drawsBackground="YES" id="MWO-hQ-nMt">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
@ -214,8 +198,11 @@
<rect key="frame" x="0.0" y="0.0" width="329" height="239"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="8lc-dc-PSG">
<rect key="frame" x="29" y="225" width="280" height="5"/>
</box>
<comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="rlP-C7-3uJ">
<rect key="frame" x="119" y="195" width="193" height="26"/>
<rect key="frame" x="119" y="158" width="193" height="26"/>
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="11" id="Pki-dN-sGQ">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -223,7 +210,7 @@
</comboBoxCell>
</comboBox>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="g86-vn-tV6">
<rect key="frame" x="40" y="200" width="73" height="17"/>
<rect key="frame" x="40" y="163" width="73" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Encryption:" id="bSO-KG-2b5">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -231,7 +218,7 @@
</textFieldCell>
</textField>
<secureTextField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="oX2-Db-V5d">
<rect key="frame" x="119" y="169" width="190" height="22"/>
<rect key="frame" x="119" y="132" width="190" height="22"/>
<secureTextFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" usesSingleLineMode="YES" id="Crw-uk-LMT">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -242,7 +229,7 @@
</secureTextFieldCell>
</secureTextField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="AGS-ql-5dx">
<rect key="frame" x="47" y="171" width="66" height="17"/>
<rect key="frame" x="47" y="134" width="66" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Password:" id="F9H-G8-6DV">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -250,33 +237,30 @@
</textFieldCell>
</textField>
<button translatesAutoresizingMaskIntoConstraints="NO" id="WiD-LX-WHu">
<rect key="frame" x="117" y="117" width="148" height="18"/>
<rect key="frame" x="117" y="80" width="148" height="18"/>
<buttonCell key="cell" type="check" title="Disable compression" bezelStyle="regularSquare" imagePosition="left" state="on" inset="2" id="ezp-Vb-ouI">
<behavior key="behavior" changeContents="YES" doesNotDimImage="YES" lightByContents="YES"/>
<font key="font" metaFont="system"/>
</buttonCell>
</button>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="bu6-g1-G0Q">
<rect key="frame" x="44" y="91" width="71" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Datashard:" id="Aj8-qI-alu">
<rect key="frame" x="18" y="54" width="97" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Datashard:" id="Aj8-qI-alu">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hXK-B7-wCP">
<rect key="frame" x="38" y="59" width="77" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Parityshard:" id="Tas-1r-V7W">
<rect key="frame" x="18" y="22" width="97" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Parityshard:" id="Tas-1r-V7W">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<box verticalHuggingPriority="750" boxType="separator" translatesAutoresizingMaskIntoConstraints="NO" id="8lc-dc-PSG">
<rect key="frame" x="29" y="225" width="280" height="5"/>
</box>
<comboBox verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="WNY-EE-WjA">
<rect key="frame" x="119" y="137" width="193" height="26"/>
<rect key="frame" x="119" y="100" width="193" height="26"/>
<comboBoxCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" sendsActionOnEndEditing="YES" borderStyle="bezel" drawsBackground="YES" completes="NO" numberOfVisibleItems="5" id="M84-Q1-s9N">
<font key="font" metaFont="system"/>
<color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
@ -284,7 +268,7 @@
</comboBoxCell>
</comboBox>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="6Up-x6-VlH">
<rect key="frame" x="71" y="142" width="42" height="17"/>
<rect key="frame" x="71" y="105" width="42" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="Mode:" id="UPY-ya-au1">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
@ -292,15 +276,21 @@
</textFieldCell>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="eiU-HT-y0P">
<rect key="frame" x="78" y="27" width="37" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" title="MTU:" id="G4r-Ba-CmP">
<rect key="frame" x="165" y="55" width="84" height="17"/>
<constraints>
<constraint firstAttribute="width" constant="80" id="d1N-7n-3qv"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="MTU:" id="G4r-Ba-CmP">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Q5m-nt-Gpa">
<rect key="frame" x="119" y="25" width="40" height="22"/>
<rect key="frame" x="253" y="53" width="56" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="56" id="kzD-L5-ybg"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="PLG-nZ-2b8">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -311,9 +301,9 @@
</connections>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QIu-0B-hot">
<rect key="frame" x="119" y="89" width="40" height="22"/>
<rect key="frame" x="119" y="52" width="40" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="40" id="23w-sd-DOZ"/>
<constraint firstAttribute="width" constant="40" id="FLW-7L-4hs"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="lqa-TF-zf8">
<font key="font" metaFont="system"/>
@ -325,7 +315,7 @@
</connections>
</textField>
<textField verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="8hC-op-kWY">
<rect key="frame" x="119" y="57" width="40" height="22"/>
<rect key="frame" x="119" y="20" width="40" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" drawsBackground="YES" id="wNm-kP-LEf">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
@ -335,84 +325,130 @@
<outlet property="formatter" destination="fck-0V-svg" id="dQf-w3-TXN"/>
</connections>
</textField>
<textField horizontalHuggingPriority="251" verticalHuggingPriority="750" allowsCharacterPickerTouchBarItem="NO" translatesAutoresizingMaskIntoConstraints="NO" id="QEf-lL-f9y">
<rect key="frame" x="18" y="193" width="95" height="17"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" sendsActionOnEndEditing="YES" alignment="right" title="Kcptun Port:" id="n2C-cl-kCt">
<font key="font" metaFont="system"/>
<color key="textColor" name="labelColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="controlColor" catalog="System" colorSpace="catalog"/>
</textFieldCell>
</textField>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="JNT-U1-Ao5">
<rect key="frame" x="119" y="190" width="50" height="22"/>
<constraints>
<constraint firstAttribute="width" constant="50" id="LiY-9g-Ei1"/>
</constraints>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Port" drawsBackground="YES" id="PQf-6C-ACJ">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
<allowedInputSourceLocales>
<string>NSAllRomanInputSourcesLocaleIdentifier</string>
</allowedInputSourceLocales>
</textFieldCell>
<connections>
<outlet property="formatter" destination="QZc-kt-D7Z" id="ilB-tq-udd"/>
</connections>
</textField>
</subviews>
<constraints>
<constraint firstItem="QIu-0B-hot" firstAttribute="leading" secondItem="8hC-op-kWY" secondAttribute="leading" id="2Kz-xt-p0C"/>
<constraint firstItem="hXK-B7-wCP" firstAttribute="leading" secondItem="rqF-7k-7qO" secondAttribute="leading" constant="40" id="A6p-ZL-RNK"/>
<constraint firstItem="WNY-EE-WjA" firstAttribute="leading" secondItem="WiD-LX-WHu" secondAttribute="leading" id="Bcy-jX-bSP"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="top" secondItem="rlP-C7-3uJ" secondAttribute="bottom" constant="8" symbolic="YES" id="DEw-vF-5Mx"/>
<constraint firstItem="WNY-EE-WjA" firstAttribute="leading" secondItem="6Up-x6-VlH" secondAttribute="trailing" constant="8" symbolic="YES" id="EaX-1U-6hH"/>
<constraint firstItem="WiD-LX-WHu" firstAttribute="leading" secondItem="QIu-0B-hot" secondAttribute="leading" id="Efn-Sj-wgS"/>
<constraint firstItem="8hC-op-kWY" firstAttribute="top" secondItem="QIu-0B-hot" secondAttribute="bottom" constant="10" symbolic="YES" id="FkG-Ji-aK5"/>
<constraint firstItem="hXK-B7-wCP" firstAttribute="trailing" secondItem="eiU-HT-y0P" secondAttribute="trailing" id="MEv-ja-xgp"/>
<constraint firstItem="8lc-dc-PSG" firstAttribute="trailing" secondItem="rlP-C7-3uJ" secondAttribute="trailing" id="MI0-R6-pJl"/>
<constraint firstItem="bu6-g1-G0Q" firstAttribute="centerY" secondItem="QIu-0B-hot" secondAttribute="centerY" id="TSs-11-aRo"/>
<constraint firstItem="g86-vn-tV6" firstAttribute="centerY" secondItem="rlP-C7-3uJ" secondAttribute="centerY" id="TiC-x2-Wyd"/>
<constraint firstItem="AGS-ql-5dx" firstAttribute="centerX" secondItem="bu6-g1-G0Q" secondAttribute="centerX" id="UHb-vj-P8T"/>
<constraint firstItem="bu6-g1-G0Q" firstAttribute="trailing" secondItem="hXK-B7-wCP" secondAttribute="trailing" id="VDq-zL-MJ8"/>
<constraint firstItem="WiD-LX-WHu" firstAttribute="top" secondItem="WNY-EE-WjA" secondAttribute="bottom" constant="8" symbolic="YES" id="VxU-bQ-reZ"/>
<constraint firstItem="hXK-B7-wCP" firstAttribute="centerY" secondItem="8hC-op-kWY" secondAttribute="centerY" id="Ygw-fl-EcG"/>
<constraint firstItem="6Up-x6-VlH" firstAttribute="centerY" secondItem="WNY-EE-WjA" secondAttribute="centerY" id="ZXN-a7-oGU"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="leading" secondItem="WNY-EE-WjA" secondAttribute="leading" id="dVd-cZ-OIL"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="top" secondItem="rqF-7k-7qO" secondAttribute="top" constant="20" symbolic="YES" id="eFY-uW-iI4"/>
<constraint firstItem="8hC-op-kWY" firstAttribute="trailing" secondItem="Q5m-nt-Gpa" secondAttribute="trailing" id="fDv-NO-GHP"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="top" secondItem="8lc-dc-PSG" secondAttribute="bottom" constant="8" symbolic="YES" id="fzv-Xp-Dxd"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="trailing" secondItem="8hC-op-kWY" secondAttribute="trailing" id="hQb-Cq-Of7"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="leading" secondItem="AGS-ql-5dx" secondAttribute="trailing" constant="8" symbolic="YES" id="hud-dF-E5V"/>
<constraint firstItem="8hC-op-kWY" firstAttribute="leading" secondItem="Q5m-nt-Gpa" secondAttribute="leading" id="jRu-UN-wP0"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="leading" secondItem="g86-vn-tV6" secondAttribute="trailing" constant="8" symbolic="YES" id="kvX-Rq-BAM"/>
<constraint firstItem="AGS-ql-5dx" firstAttribute="centerY" secondItem="oX2-Db-V5d" secondAttribute="centerY" id="moN-xL-h1m"/>
<constraint firstItem="bu6-g1-G0Q" firstAttribute="trailing" secondItem="hXK-B7-wCP" secondAttribute="trailing" id="0Li-QB-Fyo"/>
<constraint firstItem="WNY-EE-WjA" firstAttribute="leading" secondItem="6Up-x6-VlH" secondAttribute="trailing" constant="8" symbolic="YES" id="0dJ-8v-olt"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="trailing" secondItem="8lc-dc-PSG" secondAttribute="trailing" id="11x-sf-Mxy"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="trailing" secondItem="WNY-EE-WjA" secondAttribute="trailing" id="6aD-dJ-8Wv"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="trailing" secondItem="8hC-op-kWY" secondAttribute="trailing" id="7jd-C7-pfo"/>
<constraint firstItem="WiD-LX-WHu" firstAttribute="top" secondItem="WNY-EE-WjA" secondAttribute="bottom" constant="8" symbolic="YES" id="9xf-cd-Vx0"/>
<constraint firstItem="eiU-HT-y0P" firstAttribute="leading" secondItem="QIu-0B-hot" secondAttribute="trailing" constant="8" symbolic="YES" id="ANg-SM-T9q"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="baseline" secondItem="eiU-HT-y0P" secondAttribute="baseline" id="Cps-Tc-5fj"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="top" secondItem="JNT-U1-Ao5" secondAttribute="bottom" constant="8" symbolic="YES" id="EtT-I0-zBh"/>
<constraint firstItem="JNT-U1-Ao5" firstAttribute="leading" secondItem="rlP-C7-3uJ" secondAttribute="leading" id="GZ9-H9-pjm"/>
<constraint firstItem="AGS-ql-5dx" firstAttribute="centerY" secondItem="oX2-Db-V5d" secondAttribute="centerY" id="HqR-ph-cLD"/>
<constraint firstItem="WNY-EE-WjA" firstAttribute="leading" secondItem="WiD-LX-WHu" secondAttribute="leading" id="I1O-kh-lZA"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="leading" secondItem="oX2-Db-V5d" secondAttribute="leading" id="L7d-3b-OIa"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="leading" secondItem="8hC-op-kWY" secondAttribute="leading" id="NLD-67-sF0"/>
<constraint firstItem="bu6-g1-G0Q" firstAttribute="leading" secondItem="hXK-B7-wCP" secondAttribute="leading" id="Ob1-nI-6Td"/>
<constraint firstItem="bu6-g1-G0Q" firstAttribute="centerY" secondItem="QIu-0B-hot" secondAttribute="centerY" id="P8s-BC-Oj1"/>
<constraint firstItem="WNY-EE-WjA" firstAttribute="top" secondItem="oX2-Db-V5d" secondAttribute="bottom" constant="8" symbolic="YES" id="Rdx-90-fsr"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="leading" secondItem="bu6-g1-G0Q" secondAttribute="trailing" constant="6" id="TxC-kl-z4S"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="leading" secondItem="WiD-LX-WHu" secondAttribute="leading" id="UFZ-u8-Sqj"/>
<constraint firstItem="eiU-HT-y0P" firstAttribute="centerY" secondItem="Q5m-nt-Gpa" secondAttribute="centerY" id="VHy-nG-sP1"/>
<constraint firstItem="JNT-U1-Ao5" firstAttribute="top" secondItem="8lc-dc-PSG" secondAttribute="bottom" constant="15" id="Y9k-z0-CNV"/>
<constraint firstItem="g86-vn-tV6" firstAttribute="centerY" secondItem="rlP-C7-3uJ" secondAttribute="centerY" id="aBF-I6-4Hd"/>
<constraint firstItem="8hC-op-kWY" firstAttribute="top" secondItem="QIu-0B-hot" secondAttribute="bottom" constant="10" symbolic="YES" id="aDq-Mi-VsC"/>
<constraint firstItem="JNT-U1-Ao5" firstAttribute="baseline" secondItem="QEf-lL-f9y" secondAttribute="baseline" id="axo-LF-Jth"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="trailing" secondItem="oX2-Db-V5d" secondAttribute="trailing" id="bXo-FS-yhn"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="top" secondItem="rlP-C7-3uJ" secondAttribute="bottom" constant="8" symbolic="YES" id="cZ9-7q-pOy"/>
<constraint firstItem="JNT-U1-Ao5" firstAttribute="leading" secondItem="QEf-lL-f9y" secondAttribute="trailing" constant="8" symbolic="YES" id="eoi-Je-FeS"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="leading" secondItem="WNY-EE-WjA" secondAttribute="leading" id="f9m-NT-qq2"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="top" secondItem="WiD-LX-WHu" secondAttribute="bottom" constant="8" symbolic="YES" id="g1y-ws-beM"/>
<constraint firstItem="6Up-x6-VlH" firstAttribute="centerY" secondItem="WNY-EE-WjA" secondAttribute="centerY" id="izL-ly-5ud"/>
<constraint firstItem="hXK-B7-wCP" firstAttribute="centerY" secondItem="8hC-op-kWY" secondAttribute="centerY" id="jab-JN-BGh"/>
<constraint firstAttribute="trailing" secondItem="8lc-dc-PSG" secondAttribute="trailing" constant="20" symbolic="YES" id="o1A-qO-0bV"/>
<constraint firstItem="QIu-0B-hot" firstAttribute="top" secondItem="WiD-LX-WHu" secondAttribute="bottom" constant="8" symbolic="YES" id="o49-3f-7ox"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="leading" secondItem="oX2-Db-V5d" secondAttribute="leading" id="o5L-Px-aq8"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="trailing" secondItem="oX2-Db-V5d" secondAttribute="trailing" id="rQJ-YC-44p"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="trailing" secondItem="WNY-EE-WjA" secondAttribute="trailing" id="rWA-or-Dzc"/>
<constraint firstItem="eiU-HT-y0P" firstAttribute="centerY" secondItem="Q5m-nt-Gpa" secondAttribute="centerY" id="whR-5n-UQL"/>
<constraint firstItem="WNY-EE-WjA" firstAttribute="top" secondItem="oX2-Db-V5d" secondAttribute="bottom" constant="8" symbolic="YES" id="wjB-H4-n6e"/>
<constraint firstItem="rlP-C7-3uJ" firstAttribute="leading" secondItem="g86-vn-tV6" secondAttribute="trailing" constant="8" symbolic="YES" id="qmW-ot-VpI"/>
<constraint firstItem="oX2-Db-V5d" firstAttribute="leading" secondItem="AGS-ql-5dx" secondAttribute="trailing" constant="8" symbolic="YES" id="r1D-22-hyz"/>
<constraint firstItem="bu6-g1-G0Q" firstAttribute="leading" secondItem="QEf-lL-f9y" secondAttribute="leading" id="rlv-hE-MgG"/>
<constraint firstItem="Q5m-nt-Gpa" firstAttribute="trailing" secondItem="WNY-EE-WjA" secondAttribute="trailing" id="s01-TH-W7K"/>
<constraint firstAttribute="bottom" secondItem="8hC-op-kWY" secondAttribute="bottom" constant="20" symbolic="YES" id="wQE-u3-jpI"/>
<constraint firstItem="QEf-lL-f9y" firstAttribute="leading" secondItem="rqF-7k-7qO" secondAttribute="leading" constant="20" symbolic="YES" id="yn4-EK-HZV"/>
<constraint firstItem="8lc-dc-PSG" firstAttribute="leading" secondItem="rqF-7k-7qO" secondAttribute="leading" constant="29" id="yuZ-DZ-ok3"/>
<constraint firstItem="Q5m-nt-Gpa" firstAttribute="top" secondItem="8hC-op-kWY" secondAttribute="bottom" constant="10" symbolic="YES" id="zbY-iu-8xT"/>
<constraint firstItem="Q5m-nt-Gpa" firstAttribute="leading" secondItem="eiU-HT-y0P" secondAttribute="trailing" constant="6" id="zSW-Bs-dl4"/>
</constraints>
</view>
</box>
<textField verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="lng-AE-g0J">
<rect key="frame" x="249" y="381" width="50" height="22"/>
<textFieldCell key="cell" scrollable="YES" lineBreakMode="clipping" selectable="YES" editable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" placeholderString="Port" drawsBackground="YES" id="e1F-jd-e0J">
<font key="font" metaFont="system"/>
<color key="textColor" name="textColor" catalog="System" colorSpace="catalog"/>
<color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
<allowedInputSourceLocales>
<string>NSAllRomanInputSourcesLocaleIdentifier</string>
</allowedInputSourceLocales>
</textFieldCell>
<connections>
<outlet property="formatter" destination="QZc-kt-D7Z" id="ZB9-Of-Xi9"/>
</connections>
</textField>
</subviews>
<constraints>
<constraint firstItem="Qfe-Ql-iCO" firstAttribute="centerY" secondItem="ZXA-oi-Zv3" secondAttribute="centerY" id="1FL-QD-cgz"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="baseline" secondItem="lng-AE-g0J" secondAttribute="baseline" id="1H2-Dz-3gy"/>
<constraint firstItem="WE7-7J-vda" firstAttribute="top" secondItem="Zgs-86-BfH" secondAttribute="bottom" constant="16" id="2gk-Kp-5N8"/>
<constraint firstAttribute="trailing" secondItem="Zgs-86-BfH" secondAttribute="trailing" constant="78" id="3zM-s0-e0G"/>
<constraint firstItem="HPg-NP-kjP" firstAttribute="baseline" secondItem="R4F-j7-GkK" secondAttribute="baseline" id="4ZW-Qg-s8n"/>
<constraint firstItem="Baj-Yh-kmj" firstAttribute="centerY" secondItem="q3C-S0-iNn" secondAttribute="centerY" id="8Su-uk-uUh"/>
<constraint firstItem="ZXA-oi-Zv3" firstAttribute="leading" secondItem="q3C-S0-iNn" secondAttribute="leading" id="9P1-CP-JCI"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="leading" secondItem="ef4-8J-eFn" secondAttribute="leading" id="CpP-ij-yk6"/>
<constraint firstItem="ef4-8J-eFn" firstAttribute="top" secondItem="R4F-j7-GkK" secondAttribute="bottom" constant="8" symbolic="YES" id="C1T-zS-kvg"/>
<constraint firstItem="lng-AE-g0J" firstAttribute="trailing" secondItem="ef4-8J-eFn" secondAttribute="trailing" id="CZX-pB-q5g"/>
<constraint firstAttribute="trailing" secondItem="lng-AE-g0J" secondAttribute="trailing" constant="24" id="IcR-jx-NSg"/>
<constraint firstAttribute="bottom" secondItem="WE7-7J-vda" secondAttribute="bottom" id="Iin-QO-D0d"/>
<constraint firstItem="Kft-TG-O5S" firstAttribute="centerY" secondItem="ef4-8J-eFn" secondAttribute="centerY" id="KcO-x8-pVF"/>
<constraint firstItem="ZXA-oi-Zv3" firstAttribute="trailing" secondItem="q3C-S0-iNn" secondAttribute="trailing" id="L02-vk-mXx"/>
<constraint firstItem="q3C-S0-iNn" firstAttribute="leading" secondItem="9CP-zt-WuH" secondAttribute="leading" id="LU9-Hv-S1A"/>
<constraint firstItem="HPg-NP-kjP" firstAttribute="leading" secondItem="a3z-VL-3xV" secondAttribute="leading" constant="48" id="PNu-1I-nsU"/>
<constraint firstItem="ZXA-oi-Zv3" firstAttribute="leading" secondItem="Qfe-Ql-iCO" secondAttribute="trailing" constant="8" symbolic="YES" id="PgY-wY-6Bn"/>
<constraint firstItem="Baj-Yh-kmj" firstAttribute="leading" secondItem="a3z-VL-3xV" secondAttribute="leading" constant="20" symbolic="YES" id="RRQ-tg-CK5"/>
<constraint firstItem="ef4-8J-eFn" firstAttribute="leading" secondItem="Kft-TG-O5S" secondAttribute="trailing" constant="8" symbolic="YES" id="Re7-UO-qi2"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="leading" secondItem="ef4-8J-eFn" secondAttribute="leading" id="T8h-lf-Ob1"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="baseline" secondItem="lng-AE-g0J" secondAttribute="baseline" id="ULP-n0-2dN"/>
<constraint firstItem="q3C-S0-iNn" firstAttribute="trailing" secondItem="9CP-zt-WuH" secondAttribute="trailing" id="VYP-MM-OdM"/>
<constraint firstItem="q3C-S0-iNn" firstAttribute="top" secondItem="ZXA-oi-Zv3" secondAttribute="bottom" constant="10" symbolic="YES" id="VnR-0o-20b"/>
<constraint firstItem="ef4-8J-eFn" firstAttribute="top" secondItem="R4F-j7-GkK" secondAttribute="bottom" constant="8" symbolic="YES" id="Wll-Vg-0hg"/>
<constraint firstItem="HPg-NP-kjP" firstAttribute="leading" secondItem="a3z-VL-3xV" secondAttribute="leading" constant="48" id="Xln-YE-oCs"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="leading" secondItem="HPg-NP-kjP" secondAttribute="trailing" constant="8" symbolic="YES" id="YBu-pt-34q"/>
<constraint firstItem="Otb-CO-KUH" firstAttribute="leading" secondItem="R4F-j7-GkK" secondAttribute="trailing" constant="8" symbolic="YES" id="ZSo-xg-RuF"/>
<constraint firstItem="HPg-NP-kjP" firstAttribute="baseline" secondItem="R4F-j7-GkK" secondAttribute="baseline" id="W81-Yc-pdO"/>
<constraint firstItem="Kft-TG-O5S" firstAttribute="leading" secondItem="a3z-VL-3xV" secondAttribute="leading" constant="32" id="a9y-zK-bZe"/>
<constraint firstItem="Qfe-Ql-iCO" firstAttribute="leading" secondItem="a3z-VL-3xV" secondAttribute="leading" constant="41" id="dEP-s2-oAE"/>
<constraint firstItem="ef4-8J-eFn" firstAttribute="trailing" secondItem="ZXA-oi-Zv3" secondAttribute="trailing" id="dPa-bs-R24"/>
<constraint firstItem="9CP-zt-WuH" firstAttribute="top" secondItem="q3C-S0-iNn" secondAttribute="bottom" constant="8" symbolic="YES" id="dWv-BQ-kkc"/>
<constraint firstItem="lng-AE-g0J" firstAttribute="leading" secondItem="Otb-CO-KUH" secondAttribute="trailing" constant="7" id="fMi-Hj-wWf"/>
<constraint firstAttribute="trailing" secondItem="WE7-7J-vda" secondAttribute="trailing" id="gmj-rt-pdO"/>
<constraint firstItem="lng-AE-g0J" firstAttribute="leading" secondItem="Otb-CO-KUH" secondAttribute="trailing" constant="4" id="lAw-lh-auf"/>
<constraint firstItem="WE7-7J-vda" firstAttribute="leading" secondItem="a3z-VL-3xV" secondAttribute="leading" id="msE-7l-3me"/>
<constraint firstItem="q3C-S0-iNn" firstAttribute="leading" secondItem="Baj-Yh-kmj" secondAttribute="trailing" constant="8" symbolic="YES" id="nq1-pz-qJC"/>
<constraint firstItem="9CP-zt-WuH" firstAttribute="leading" secondItem="Zgs-86-BfH" secondAttribute="leading" id="pCy-Qa-Q5Z"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="top" secondItem="a3z-VL-3xV" secondAttribute="top" constant="20" symbolic="YES" id="pX9-Xh-4s2"/>
<constraint firstItem="lng-AE-g0J" firstAttribute="trailing" secondItem="ef4-8J-eFn" secondAttribute="trailing" id="qPu-jF-jbe"/>
<constraint firstItem="Otb-CO-KUH" firstAttribute="leading" secondItem="R4F-j7-GkK" secondAttribute="trailing" constant="8" symbolic="YES" id="pG6-vC-1Eq"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="top" secondItem="a3z-VL-3xV" secondAttribute="top" constant="20" symbolic="YES" id="poQ-rh-f66"/>
<constraint firstItem="ZXA-oi-Zv3" firstAttribute="top" secondItem="ef4-8J-eFn" secondAttribute="bottom" constant="8" symbolic="YES" id="s3I-kU-UAW"/>
<constraint firstItem="Otb-CO-KUH" firstAttribute="top" secondItem="lng-AE-g0J" secondAttribute="top" id="sJ4-q0-b6J"/>
<constraint firstItem="ef4-8J-eFn" firstAttribute="leading" secondItem="ZXA-oi-Zv3" secondAttribute="leading" id="stj-YW-LGc"/>
<constraint firstItem="Otb-CO-KUH" firstAttribute="top" secondItem="lng-AE-g0J" secondAttribute="top" id="uEw-aW-KhG"/>
<constraint firstItem="R4F-j7-GkK" firstAttribute="leading" secondItem="HPg-NP-kjP" secondAttribute="trailing" constant="8" symbolic="YES" id="tBe-UA-X2R"/>
<constraint firstItem="Otb-CO-KUH" firstAttribute="trailing" secondItem="Zgs-86-BfH" secondAttribute="trailing" id="uLJ-aX-eat"/>
<constraint firstItem="Zgs-86-BfH" firstAttribute="top" secondItem="9CP-zt-WuH" secondAttribute="bottom" constant="6" symbolic="YES" id="vuI-6B-cns"/>
<constraint firstAttribute="trailing" secondItem="lng-AE-g0J" secondAttribute="trailing" constant="24" id="vxw-Pk-UqG"/>
</constraints>
</view>
<color key="fillColor" name="controlBackgroundColor" catalog="System" colorSpace="catalog"/>

View File

@ -7,6 +7,8 @@
//
import Cocoa
import RxCocoa
import RxSwift
class PreferencesWindowController: NSWindowController
, NSTableViewDataSource, NSTableViewDelegate {
@ -18,6 +20,7 @@ class PreferencesWindowController: NSWindowController
@IBOutlet weak var hostTextField: NSTextField!
@IBOutlet weak var portTextField: NSTextField!
@IBOutlet weak var kcptunPortTextField: NSTextField!
@IBOutlet weak var methodTextField: NSComboBox!
@IBOutlet weak var passwordTextField: NSTextField!
@ -41,12 +44,15 @@ class PreferencesWindowController: NSWindowController
var profileMgr: ServerProfileManager!
var editingProfile: ServerProfile!
var enabledKcptunSubDisosable: Disposable?
override func windowDidLoad() {
super.windowDidLoad()
// Implement this method to handle any initialization after your window controller's window has been loaded from its nib file.
defaults = UserDefaults.standard
profileMgr = ServerProfileManager.instance
@ -202,9 +208,21 @@ class PreferencesWindowController: NSWindowController
func bindProfile(_ index:Int) {
NSLog("bind profile \(index)")
if let dis = enabledKcptunSubDisosable {
dis.dispose()
enabledKcptunSubDisosable = Optional.none
}
if index >= 0 && index < profileMgr.profiles.count {
editingProfile = profileMgr.profiles[index]
enabledKcptunSubDisosable = editingProfile.rx.observeWeakly(Bool.self, "enabledKcptun")
.subscribe(onNext: { v in
if let enabled = v {
self.portTextField.isEnabled = !enabled
}
})
hostTextField.bind("value", to: editingProfile, withKeyPath: "serverHost"
, options: [NSContinuouslyUpdatesValueBindingOption: true])
portTextField.bind("value", to: editingProfile, withKeyPath: "serverPort"
@ -226,6 +244,9 @@ class PreferencesWindowController: NSWindowController
kcptunCheckBoxBtn.bind("value", to: editingProfile, withKeyPath: "enabledKcptun"
, options: [NSContinuouslyUpdatesValueBindingOption: true])
kcptunPortTextField.bind("value", to: editingProfile, withKeyPath: "serverPort"
, options: [NSContinuouslyUpdatesValueBindingOption: true])
kcptunProfileBox.bind("Hidden", to: editingProfile, withKeyPath: "enabledKcptun"
, options: [NSContinuouslyUpdatesValueBindingOption: false,
NSValueTransformerNameBindingOption: NSValueTransformerName.negateBooleanTransformerName])