Sfoglia il codice sorgente

NPD Mobile ios 26 compatible fix

Ray Zhang 4 mesi fa
parent
commit
abb2450eca

+ 13 - 11
RedAnt ERP Mobile/common/ERP_Mobile_Contact.storyboard

@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="24412" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24405"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -17,7 +16,7 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Or5-ax-ZZ1">
-                                <rect key="frame" x="0.0" y="0.0" width="768" height="50"/>
+                                <rect key="frame" x="0.0" y="20" width="768" height="44"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <items>
                                     <barButtonItem title="Advance Search" id="dCF-0m-esY">
@@ -28,9 +27,12 @@
                                     </barButtonItem>
                                     <barButtonItem style="plain" systemItem="flexibleSpace" id="Kh1-HL-uSg"/>
                                     <barButtonItem style="plain" id="3JX-S8-pQQ">
-                                        <searchBar key="customView" contentMode="redraw" searchBarStyle="minimal" placeholder="Name, Address, Phone etc" id="LlH-OI-NKM">
-                                            <rect key="frame" x="300" y="3" width="361" height="44"/>
-                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                        <searchBar key="customView" contentMode="redraw" misplaced="YES" searchBarStyle="minimal" placeholder="..." id="LlH-OI-NKM">
+                                            <rect key="frame" x="195" y="-10" width="381" height="64"/>
+                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="44" id="FixHeight-Force44"/>
+                                            </constraints>
                                             <textInputTraits key="textInputTraits"/>
                                             <connections>
                                                 <outlet property="delegate" destination="nYA-mr-Jr1" id="Doh-w2-K79"/>
@@ -49,11 +51,11 @@
                                 <color key="barTintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             </toolbar>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="OI6-ri-aSh">
-                                <rect key="frame" x="0.0" y="50" width="768" height="974"/>
+                                <rect key="frame" x="0.0" y="64" width="768" height="960"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="ContactListTableViewCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="ContactListTableViewCell" rowHeight="128" id="pFg-rL-ZNB" customClass="ContactListTableViewCell">
-                                        <rect key="frame" x="0.0" y="28" width="768" height="128"/>
+                                        <rect key="frame" x="0.0" y="50.5" width="768" height="128"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="pFg-rL-ZNB" id="jCC-Zz-5qn">
                                             <rect key="frame" x="0.0" y="0.0" width="768" height="128"/>
@@ -98,12 +100,13 @@
                                 <color key="color" red="0.59999999999999998" green="0.40000000000000002" blue="0.20000000000000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             </activityIndicatorView>
                             <label hidden="YES" opaque="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Cannot get data from server.
Tap to try again." textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="2" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="R2e-04-QIL">
-                                <rect key="frame" x="262" y="489.5" width="244" height="45.5"/>
+                                <rect key="frame" x="263.5" y="489.5" width="241.5" height="45.5"/>
                                 <fontDescription key="fontDescription" name=".AppleSystemUIFont" family=".AppleSystemUIFont" pointSize="19"/>
                                 <color key="textColor" red="0.33333333329999998" green="0.33333333329999998" blue="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <nil key="highlightedColor"/>
                             </label>
                         </subviews>
+                        <viewLayoutGuide key="safeArea" id="PMy-fH-koM"/>
                         <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <constraints>
                             <constraint firstItem="PMy-fH-koM" firstAttribute="bottom" secondItem="OI6-ri-aSh" secondAttribute="bottom" id="3oX-iM-Ks6"/>
@@ -118,7 +121,6 @@
                             <constraint firstItem="OI6-ri-aSh" firstAttribute="top" secondItem="Or5-ax-ZZ1" secondAttribute="bottom" symbolic="YES" id="p3c-j4-dSa"/>
                             <constraint firstItem="R2e-04-QIL" firstAttribute="centerY" secondItem="kOx-jb-UtN" secondAttribute="centerY" id="xgD-hS-EhU"/>
                         </constraints>
-                        <viewLayoutGuide key="safeArea" id="PMy-fH-koM"/>
                     </view>
                     <connections>
                         <outlet property="label_net_err" destination="R2e-04-QIL" id="F6l-LI-Mui"/>

+ 30 - 29
RedAnt ERP Mobile/common/ERP_Mobile_Order.storyboard

@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="20037" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="24412" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="landscape" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="20020"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24405"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="System colors in document resources" minToolsVersion="11.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
@@ -22,7 +21,7 @@
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailInfoCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailInfoCell" id="j6Z-EZ-h51" customClass="OrderDetailInfoCell">
-                                        <rect key="frame" x="0.0" y="44.5" width="1024" height="44"/>
+                                        <rect key="frame" x="0.0" y="50.5" width="1024" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="j6Z-EZ-h51" id="XdH-yQ-RbM">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="44"/>
@@ -40,7 +39,7 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailModelCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailModelCell" rowHeight="190" id="1Fs-vK-Pg3" customClass="OrderDetailModelCell">
-                                        <rect key="frame" x="0.0" y="88.5" width="1024" height="190"/>
+                                        <rect key="frame" x="0.0" y="94.5" width="1024" height="190"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="1Fs-vK-Pg3" id="dka-AS-2v7">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="190"/>
@@ -247,7 +246,7 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailPriceCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailPriceCell" id="7bD-vr-aXj" customClass="OrderDetailPriceCell">
-                                        <rect key="frame" x="0.0" y="278.5" width="1024" height="44"/>
+                                        <rect key="frame" x="0.0" y="284.5" width="1024" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7bD-vr-aXj" id="3fR-xo-Duc">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="44"/>
@@ -287,7 +286,7 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailHtmlCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailHtmlCell" rowHeight="44" id="7Vz-DF-k8E" customClass="OrderDetailHtmlCell">
-                                        <rect key="frame" x="0.0" y="322.5" width="1024" height="44"/>
+                                        <rect key="frame" x="0.0" y="328.5" width="1024" height="44"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="7Vz-DF-k8E" id="jPD-gn-rpJ">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="44"/>
@@ -314,7 +313,7 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell contentMode="scaleToFill" restorationIdentifier="OrderDetailSignatureCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderDetailSignatureCell" rowHeight="148" id="a2N-8P-mNM" customClass="OrderDetailSignatureCell">
-                                        <rect key="frame" x="0.0" y="366.5" width="1024" height="148"/>
+                                        <rect key="frame" x="0.0" y="372.5" width="1024" height="148"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="a2N-8P-mNM" id="Puc-DI-9DR">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="148"/>
@@ -347,7 +346,7 @@
                                         </connections>
                                     </tableViewCell>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="default" indentationWidth="10" reuseIdentifier="OrderDetailPickInfoCell" rowHeight="218" id="oDs-9g-3Lq" customClass="OrderDetailPickInfoCell">
-                                        <rect key="frame" x="0.0" y="514.5" width="1024" height="218"/>
+                                        <rect key="frame" x="0.0" y="520.5" width="1024" height="218"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="oDs-9g-3Lq" translatesAutoresizingMaskIntoConstraints="NO" id="0gN-bu-MIM">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="218"/>
@@ -516,7 +515,7 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <toolbar opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="MSe-Rl-r7w">
-                                <rect key="frame" x="0.0" y="20" width="1024" height="50"/>
+                                <rect key="frame" x="0.0" y="20" width="1024" height="44"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <items>
                                     <barButtonItem title="Select Order Status" id="Wkf-BC-Ol7">
@@ -527,9 +526,12 @@
                                     </barButtonItem>
                                     <barButtonItem style="plain" systemItem="flexibleSpace" id="kVI-mI-APr"/>
                                     <barButtonItem style="plain" id="dBx-tt-ebQ">
-                                        <searchBar key="customView" contentMode="redraw" searchBarStyle="minimal" placeholder="Sale order number, sales rep, create by, contact" id="bEb-Vy-SpG">
-                                            <rect key="frame" x="302" y="3" width="364" height="44"/>
-                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                        <searchBar key="customView" contentMode="redraw" misplaced="YES" searchBarStyle="minimal" placeholder="Sale order number, sales rep, create by, contact" id="bEb-Vy-SpG">
+                                            <rect key="frame" x="221" y="-10" width="651" height="64"/>
+                                            <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMinY="YES" flexibleMaxY="YES"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="44" id="ForceHeight-44-Order"/>
+                                            </constraints>
                                             <textInputTraits key="textInputTraits"/>
                                             <connections>
                                                 <outlet property="delegate" destination="Q3R-QB-OJA" id="s1Q-3g-j8O"/>
@@ -537,7 +539,6 @@
                                         </searchBar>
                                     </barButtonItem>
                                     <barButtonItem style="plain" systemItem="flexibleSpace" id="QSC-SH-uLY"/>
-                                    <barButtonItem enabled="NO" id="gC0-8y-KuJ"/>
                                     <barButtonItem image="Combinegray" id="1DF-ll-7D8">
                                         <connections>
                                             <action selector="editOrderListButtonClick:" destination="Q3R-QB-OJA" id="aUm-1f-TOV"/>
@@ -554,11 +555,11 @@
                                 <color key="barTintColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                             </toolbar>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="E4J-T4-LdO">
-                                <rect key="frame" x="0.0" y="121.5" width="1024" height="646.5"/>
+                                <rect key="frame" x="0.0" y="115.5" width="1024" height="652.5"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderListTableViewCell" rowHeight="66" id="WVB-xn-Efd" customClass="OrderListTableViewCell">
-                                        <rect key="frame" x="0.0" y="44.5" width="1024" height="66"/>
+                                        <rect key="frame" x="0.0" y="50.5" width="1024" height="66"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="WVB-xn-Efd" translatesAutoresizingMaskIntoConstraints="NO" id="LkX-13-tk6">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="66"/>
@@ -706,7 +707,7 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Status Selected:" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="aBZ-AJ-0Qn">
-                                <rect key="frame" x="20" y="70" width="131" height="21"/>
+                                <rect key="frame" x="20" y="64" width="131" height="21"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="21" id="95F-aQ-qFQ"/>
                                     <constraint firstAttribute="width" constant="131" id="Izz-RG-sz6"/>
@@ -716,7 +717,7 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="xKm-bM-vOg">
-                                <rect key="frame" x="153" y="69.5" width="851" height="21"/>
+                                <rect key="frame" x="153" y="63.5" width="851" height="21"/>
                                 <constraints>
                                     <constraint firstAttribute="height" constant="21" id="Bp8-eN-GHB"/>
                                 </constraints>
@@ -725,7 +726,7 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="0" translatesAutoresizingMaskIntoConstraints="NO" id="ohH-1K-QsE">
-                                <rect key="frame" x="0.0" y="90.5" width="1024" height="32"/>
+                                <rect key="frame" x="0.0" y="84.5" width="1024" height="32"/>
                                 <segments>
                                     <segment title="Store Order"/>
                                     <segment title="Purchase Order to NPD"/>
@@ -852,11 +853,11 @@
                         <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="xxx-Rl-Yvi">
-                                <rect key="frame" x="0.0" y="51" width="1024" height="717"/>
+                                <rect key="frame" x="0.0" y="54.5" width="1024" height="713.5"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" selectionStyle="none" indentationWidth="10" reuseIdentifier="UploadCell" rowHeight="100" id="Bww-5l-BiC" customClass="UploadCell">
-                                        <rect key="frame" x="0.0" y="44.5" width="1024" height="100"/>
+                                        <rect key="frame" x="0.0" y="50.5" width="1024" height="100"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Bww-5l-BiC" id="1P1-CU-Qyh">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="100"/>
@@ -933,11 +934,11 @@
                                 </connections>
                             </tableView>
                             <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="tla-Jv-Qec" userLabel="table submit">
-                                <rect key="frame" x="0.0" y="51" width="1024" height="717"/>
+                                <rect key="frame" x="0.0" y="54.5" width="1024" height="713.5"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderListTableViewCell" rowHeight="66" id="Pwl-ez-L6T" customClass="OrderListTableViewCell">
-                                        <rect key="frame" x="0.0" y="44.5" width="1024" height="66"/>
+                                        <rect key="frame" x="0.0" y="50.5" width="1024" height="66"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="Pwl-ez-L6T" id="tFl-dI-DEO">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="66"/>
@@ -1039,11 +1040,11 @@
                                 </connections>
                             </tableView>
                             <tableView hidden="YES" clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" translatesAutoresizingMaskIntoConstraints="NO" id="okE-6e-1XS">
-                                <rect key="frame" x="0.0" y="51" width="1024" height="717"/>
+                                <rect key="frame" x="0.0" y="54.5" width="1024" height="713.5"/>
                                 <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <prototypes>
                                     <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="OrderListTableViewCell" rowHeight="66" id="X1d-0l-bjq" customClass="OrderListTableViewCell">
-                                        <rect key="frame" x="0.0" y="44.5" width="1024" height="66"/>
+                                        <rect key="frame" x="0.0" y="50.5" width="1024" height="66"/>
                                         <autoresizingMask key="autoresizingMask"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="X1d-0l-bjq" id="3SE-8W-1Ko">
                                             <rect key="frame" x="0.0" y="0.0" width="1024" height="66"/>
@@ -1151,7 +1152,7 @@
                                 <nil key="highlightedColor"/>
                             </label>
                             <segmentedControl opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="top" segmentControlStyle="plain" selectedSegmentIndex="1" translatesAutoresizingMaskIntoConstraints="NO" id="ni4-Ku-8zb">
-                                <rect key="frame" x="0.0" y="20" width="1024" height="32"/>
+                                <rect key="frame" x="0.0" y="20" width="1024" height="35.5"/>
                                 <segments>
                                     <segment title="Unsubmitted"/>
                                     <segment title="Submitted"/>
@@ -1162,7 +1163,7 @@
                                 </connections>
                             </segmentedControl>
                             <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jjJ-Ft-a70">
-                                <rect key="frame" x="682.5" y="20" width="341.5" height="31"/>
+                                <rect key="frame" x="682.5" y="20" width="341.5" height="34.5"/>
                                 <state key="normal" title="Button"/>
                                 <buttonConfiguration key="configuration" style="plain" title=" "/>
                                 <connections>
@@ -1170,13 +1171,13 @@
                                 </connections>
                             </button>
                             <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eVO-Vb-aKi">
-                                <rect key="frame" x="341.5" y="30.5" width="341" height="31"/>
+                                <rect key="frame" x="341.5" y="30" width="341" height="34.5"/>
                                 <color key="backgroundColor" red="0.95287781953811646" green="0.61227613687515259" blue="0.62031883001327515" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <state key="normal" title="Button"/>
                                 <buttonConfiguration key="configuration" style="plain" title="Button"/>
                             </button>
                             <button hidden="YES" opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="c2D-UH-6Ax">
-                                <rect key="frame" x="0.0" y="20" width="341.5" height="31"/>
+                                <rect key="frame" x="0.0" y="20" width="341.5" height="34.5"/>
                                 <color key="backgroundColor" red="0.95287781953811646" green="0.61227613687515259" blue="0.62031883001327515" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                                 <state key="normal" title="Button"/>
                                 <buttonConfiguration key="configuration" style="plain"/>

+ 9 - 7
RedAnt ERP Mobile/common/ERP_Mobile_Search.storyboard

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="22505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="24412" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="22504"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24405"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -131,7 +131,7 @@
                                         </connections>
                                     </collectionViewCell>
                                     <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="CategoryCellNPD" id="YRD-3R-JTD" customClass="CategoryCellNPD">
-                                        <rect key="frame" x="588" y="94.5" width="180" height="251"/>
+                                        <rect key="frame" x="588" y="95" width="180" height="251"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
                                         <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                                             <rect key="frame" x="0.0" y="0.0" width="180" height="251"/>
@@ -432,6 +432,7 @@
                             <toolbar hidden="YES" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="cIx-ve-3Su">
                                 <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <items>
                                     <barButtonItem title="Add To Wish List" id="pyH-dB-NnA">
                                         <connections>
@@ -853,9 +854,8 @@
                                 <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                 <subviews>
                                     <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" translatesAutoresizingMaskIntoConstraints="NO" id="Sl6-77-cvo">
-                                        <rect key="frame" x="275" y="6.5" width="51" height="31"/>
+                                        <rect key="frame" x="275" y="6.5" width="63" height="31"/>
                                         <constraints>
-                                            <constraint firstAttribute="width" constant="49" id="aRS-OH-qIT"/>
                                             <constraint firstAttribute="height" constant="31" id="nYz-J8-jvf"/>
                                         </constraints>
                                         <connections>
@@ -863,7 +863,7 @@
                                         </connections>
                                     </switch>
                                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Search by factory code" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Ich-Le-vsA">
-                                        <rect key="frame" x="332" y="11.5" width="194" height="21"/>
+                                        <rect key="frame" x="344" y="11.5" width="194" height="21"/>
                                         <constraints>
                                             <constraint firstAttribute="height" constant="21" id="v4a-hW-nuf"/>
                                             <constraint firstAttribute="width" constant="194" id="wMa-Er-O88"/>
@@ -962,6 +962,7 @@
                             <toolbar hidden="YES" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="u2P-Ry-o8C">
                                 <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <items>
                                     <barButtonItem title="Add To Wish List" id="QQW-Zd-grC">
                                         <connections>
@@ -1374,7 +1375,7 @@
                                 </collectionViewFlowLayout>
                                 <cells>
                                     <collectionViewCell opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" reuseIdentifier="CategoryCellNPD" id="JSt-6l-I6L" customClass="CategoryCellNPD">
-                                        <rect key="frame" x="0.0" y="94.5" width="180" height="251"/>
+                                        <rect key="frame" x="0.0" y="95" width="180" height="251"/>
                                         <autoresizingMask key="autoresizingMask" flexibleMinY="YES"/>
                                         <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center">
                                             <rect key="frame" x="0.0" y="0.0" width="180" height="251"/>
@@ -1786,6 +1787,7 @@
                             <toolbar hidden="YES" opaque="NO" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" fixedFrame="YES" translatesAutoresizingMaskIntoConstraints="NO" id="FOk-8J-App">
                                 <rect key="frame" x="0.0" y="0.0" width="768" height="44"/>
                                 <autoresizingMask key="autoresizingMask" widthSizable="YES" flexibleMaxY="YES"/>
+                                <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
                                 <items>
                                     <barButtonItem title="Add To Wish List" id="BTI-av-g18">
                                         <connections>

+ 3 - 0
RedAnt ERP Mobile/common/Functions/contact/ContactListViewController.m

@@ -54,6 +54,9 @@
 - (void)viewDidLoad {
     [super viewDidLoad];
 //    self.toolbar.hidden=true;
+    
+    
+//    self.searchBar.searchTextPositionAdjustment = UIOffsetMake(0, 1);
     self.label_net_err.layer.borderColor = [UIColor darkGrayColor].CGColor;
     self.label_net_err.layer.borderWidth = 2.0;
     self.label_net_err.layer.cornerRadius=15;

+ 67 - 70
RedAnt ERP Mobile/common/Functions/signature/SignatureViewController.m

@@ -42,105 +42,102 @@
     
     [self.navigationController popViewControllerAnimated:FALSE];
 }
+
 - (void)viewDidLoad
 {
     [super viewDidLoad];
-//    self.view.backgroundColor = [UIColor redColor];
+    
     self.navigationItem.title = self.title;
     
-    if(self.linewidth==0)
-        self.linewidth=5;
+    // ==========================================
+    // 1. 導航欄外觀修復 (防止變黑/透明)
+    // ==========================================
+    if (@available(iOS 15.0, *)) {
+        UINavigationBarAppearance *appearance = [[UINavigationBarAppearance alloc] init];
+        [appearance configureWithOpaqueBackground]; // 強制不透明
+        appearance.backgroundColor = [UIColor whiteColor]; // 背景白
+        appearance.titleTextAttributes = @{NSForegroundColorAttributeName: [UIColor blackColor]};
+        
+        self.navigationController.navigationBar.standardAppearance = appearance;
+        self.navigationController.navigationBar.scrollEdgeAppearance = appearance;
+    } else {
+        self.navigationController.navigationBar.barTintColor = [UIColor whiteColor];
+        self.navigationController.navigationBar.translucent = NO;
+    }
     
+    // ==========================================
+    // 2. 視圖佈局修復 (防止黑邊)
+    // ==========================================
+    // 禁止頂部延伸(避開導航欄),允許其他方向延伸(鋪滿底部)
+    self.edgesForExtendedLayout = UIRectEdgeAll & ~UIRectEdgeTop;
+    // 設置底色為白,防止加載時透出黑色
+    self.view.backgroundColor = [UIColor whiteColor];
     
-    EAGLContext *context = [[EAGLContext alloc]initWithAPI:kEAGLRenderingAPIOpenGLES2];
     
+    // ==========================================
+    // 3. 初始化畫板 (使用 Auto Layout)
+    // ==========================================
+    if(self.linewidth == 0)
+        self.linewidth = 5;
     
-    if(true/*||self.signature_ratio.width<=0||self.signature_ratio.height<=0*/)
-    {
-        self.signatureView = [[SignatureView alloc] initWithFrame:self.view.frame context:context];
-//        self.signatureView= [[SignatureView alloc] initWithFrame:self.view.frame];
-    }
-//    else
-//    {
-//        CGRect rect=CGRectMake(5, 90, self.view.frame.size.width-10, self.view.frame.size.height-95);
-//        
-//        CGSize signatureView_size=CGSizeMake(rect.size.width, rect.size.width*self.signature_ratio.height/self.signature_ratio.width);
-//        
-//        if(signatureView_size.height>rect.size.height)
-//            signatureView_size=CGSizeMake(rect.size.height*self.signature_ratio.width/self.signature_ratio.height,rect.size.height);
-//        
-//        self.signatureView= [[SignatureView alloc] initWithFrame:CGRectMake((rect.size.width-signatureView_size.width)/2+5, (rect.size.height-signatureView_size.height)/2+90, signatureView_size.width, signatureView_size.height)];
-//    }
-    
-//    self.signatureView.backgroundColor = [UIColor clearColor];
-    
-            self.signatureView.layer.borderColor = [UIColor darkGrayColor].CGColor;
-            self.signatureView.layer.borderWidth = 1.0;
+    EAGLContext *context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
+    
+    // 【修改重點】初始化傳 CGRectZero,並關閉 Autoresizing 轉換
+    self.signatureView = [[SignatureView alloc] initWithFrame:CGRectZero context:context];
+    self.signatureView.translatesAutoresizingMaskIntoConstraints = NO;
+    self.signatureView.backgroundColor = [UIColor whiteColor];
+    
+    // 設置邊框樣式
+    self.signatureView.layer.borderColor = [UIColor darkGrayColor].CGColor;
+    self.signatureView.layer.borderWidth = 1.0;
     
     [self.view addSubview:self.signatureView];
     
+    // 【修改重點】添加約束,將畫板強行釘死在父視圖的四個邊緣
+    // 這樣無論屏幕多長,它都會自動拉伸填滿,徹底消除底部黑邊
+    [NSLayoutConstraint activateConstraints:@[
+        [self.signatureView.topAnchor constraintEqualToAnchor:self.view.topAnchor],
+        [self.signatureView.bottomAnchor constraintEqualToAnchor:self.view.bottomAnchor],
+        [self.signatureView.leadingAnchor constraintEqualToAnchor:self.view.leadingAnchor],
+        [self.signatureView.trailingAnchor constraintEqualToAnchor:self.view.trailingAnchor]
+    ]];
+    
     
+    // ==========================================
+    // 4. 導航欄按鈕設置 (保持原有邏輯)
+    // ==========================================
     UIBarButtonItem *closeButton = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"back"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
                                                                     style:UIBarButtonItemStylePlain
                                                                    target:self
-                                                                   action:@selector( onBackClick:)];
-    
- //   closeButton.tintColor = UIColorFromRGB(0x996633);
-    self.navigationItem.leftBarButtonItem=closeButton;
-    
+                                                                   action:@selector(onBackClick:)];
+    self.navigationItem.leftBarButtonItem = closeButton;
     
-    UIBarButtonItem *clearBtn=[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"clear"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                               style:UIBarButtonItemStylePlain
-                                                              target:self
-                                                              action:@selector( onClear:)];
-     //   clearBtn.tintColor = UIColorFromRGB(0x996633);
-    UIBarButtonItem *doneBtn=[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"save"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
-                                                              style:UIBarButtonItemStylePlain
-                                                             target:self
-                                                             action:@selector( onDone:)];
-     //   doneBtn.tintColor = UIColorFromRGB(0x996633);
+    UIBarButtonItem *clearBtn = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"clear"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
+                                                                 style:UIBarButtonItemStylePlain
+                                                                target:self
+                                                                action:@selector(onClear:)];
     
-    //  id aa = self.navigationItem;
+    UIBarButtonItem *doneBtn = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"save"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
+                                                                style:UIBarButtonItemStylePlain
+                                                               target:self
+                                                               action:@selector(onDone:)];
     
-    //  self.navi_item.title = @"ttttt";
-    
-    //  self.navigationItem.rightBarButtonItem = searchButton;
-    
-    UIBarButtonItem * settingBtn =[[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"signature_setting"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
+    UIBarButtonItem *settingBtn = [[UIBarButtonItem alloc] initWithImage:[[UIImage imageNamed:@"signature_setting"] imageWithRenderingMode:UIImageRenderingModeAutomatic]
                                                                    style:UIBarButtonItemStylePlain
                                                                   target:self
-                                                                  action:@selector( onSetting:)];
-    
-//    UIBarButtonItem * settingBtn =[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemCompose
-//                                                                 target:self
-//                                                                 action:@selector( onSetting:)];
-    
-    
+                                                                  action:@selector(onSetting:)];
     
     if (UIDevice.currentDevice.userInterfaceIdiom == UIUserInterfaceIdiomPhone) {
-        self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:doneBtn,clearBtn , nil];
+        self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:doneBtn, clearBtn, nil];
     } else {
-        self.navigationItem.rightBarButtonItems=[NSArray arrayWithObjects:doneBtn,clearBtn,settingBtn , nil];
+        self.navigationItem.rightBarButtonItems = [NSArray arrayWithObjects:doneBtn, clearBtn, settingBtn, nil];
     }
-
+    
     [self.navigationController.navigationBar layoutIfNeeded];
     
+    // 設置畫筆參數
     [self.signatureView setLineWidth:self.linewidth];
     self.signatureView.foregroundLineColor = [UIColor colorWithRed:0.204 green:0.596 blue:0.859 alpha:1.000];
-//    UIImage* img = [UIImage alloc]initw
-    
-    
-    
-  //  cgimagecre
-    
-    //self.existSignature没有调用,已去掉
-//    if(self.existSignature!= nil)
-//    {
-//        CGSize size =self.signatureView.bounds.size;
-//    self.signatureView.image = [self addImage:self.existSignature size:size] ;
-//        self.signatureView.boundary =CGRectMake((size.width-self.existSignature.size.width)/2,(size.height-self.existSignature.size.height)/2, self.existSignature.size.width, self.existSignature.size.height);
-//    }
-    // Do any additional setup after loading the view.
 }
 - (UIImage *)addImage:(UIImage *)image size:(CGSize )size {
     UIGraphicsBeginImageContext(size);

+ 4 - 5
RedAnt ERP Mobile/common/Functions/signature/signature.storyboard

@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="21701" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="24412" targetRuntime="iOS.CocoaTouch.iPad" propertyAccessControl="none" useAutolayout="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="21678"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24405"/>
         <capability name="Safe area layout guides" minToolsVersion="9.0"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
@@ -14,7 +13,7 @@
                 <viewController storyboardIdentifier="SignatureViewController" title="Signature panel" useStoryboardIdentifierAsRestorationIdentifier="YES" id="nJY-u8-PHN" customClass="SignatureViewController" sceneMemberID="viewController">
                     <view key="view" contentMode="scaleToFill" id="EWz-QT-t28" customClass="GLKView">
                         <rect key="frame" x="0.0" y="0.0" width="768" height="1024"/>
-                        <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
+                        <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
                         <subviews>
                             <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="8MW-Bu-gt4">
                                 <rect key="frame" x="0.0" y="20" width="768" height="1004"/>
@@ -57,7 +56,7 @@
                                 <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
                                 <prototypes>
                                     <tableViewCell clipsSubviews="YES" contentMode="scaleToFill" restorationIdentifier="SignatureTableViewCell" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="SignatureTableViewCell" rowHeight="128" id="pJ2-Li-nq4" customClass="SignatureTableViewCell">
-                                        <rect key="frame" x="0.0" y="50" width="376" height="128"/>
+                                        <rect key="frame" x="0.0" y="51" width="376" height="128"/>
                                         <autoresizingMask key="autoresizingMask" widthSizable="YES"/>
                                         <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="pJ2-Li-nq4" id="hwz-Mn-MnM">
                                             <rect key="frame" x="0.0" y="0.0" width="376" height="128"/>

+ 36 - 2
RedAnt ERP Mobile/iSales-NPD.xcodeproj/project.pbxproj

@@ -252,7 +252,6 @@
 		718716251C433D8B00F25860 /* ExternalAccessory.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716241C433D8B00F25860 /* ExternalAccessory.framework */; };
 		718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716261C433D9700F25860 /* AudioToolbox.framework */; };
 		718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716281C433DA400F25860 /* AVFoundation.framework */; };
-		7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 718716221C433D5000F25860 /* libScanApiCore.a */; };
 		718E71091DE7CEA20035D1FF /* so.json in Resources */ = {isa = PBXBuildFile; fileRef = 718E71081DE7CEA20035D1FF /* so.json */; };
 		7195623C1CF57D1800C74A49 /* CategoryHeaderView.m in Sources */ = {isa = PBXBuildFile; fileRef = 7195623B1CF57D1800C74A49 /* CategoryHeaderView.m */; };
 		71BBA2271CEAC16000C91DED /* ZipArchive.mm in Sources */ = {isa = PBXBuildFile; fileRef = 71BBA2221CEAC16000C91DED /* ZipArchive.mm */; };
@@ -300,6 +299,7 @@
 		71E9F6C21F8B57E40052C78E /* RANetworkTaskDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 71E9F6C01F8B57E30052C78E /* RANetworkTaskDelegate.m */; };
 		71FFBBE91C60894900D91DC2 /* iSalesDB.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE61C60894900D91DC2 /* iSalesDB.m */; };
 		71FFBBEA1C60894900D91DC2 /* RANetwork.m in Sources */ = {isa = PBXBuildFile; fileRef = 71FFBBE81C60894900D91DC2 /* RANetwork.m */; };
+		78DD35082ED69EC3001E4BCB /* ScanApiStub.m in Sources */ = {isa = PBXBuildFile; fileRef = 78DD35072ED69EC3001E4BCB /* ScanApiStub.m */; };
 /* End PBXBuildFile section */
 
 /* Begin PBXFileReference section */
@@ -817,6 +817,8 @@
 		71FFBBE61C60894900D91DC2 /* iSalesDB.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = iSalesDB.m; path = common/data_provider/iSalesDB.m; sourceTree = SOURCE_ROOT; };
 		71FFBBE71C60894900D91DC2 /* RANetwork.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RANetwork.h; path = common/data_provider/RANetwork.h; sourceTree = SOURCE_ROOT; };
 		71FFBBE81C60894900D91DC2 /* RANetwork.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = RANetwork.m; path = common/data_provider/RANetwork.m; sourceTree = SOURCE_ROOT; };
+		78DD35042ED5A69C001E4BCB /* libScanApiCore.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libScanApiCore.a; path = "ScanApiSDK-10.2.227-2/lib/libScanApiCore.a"; sourceTree = "<group>"; };
+		78DD35072ED69EC3001E4BCB /* ScanApiStub.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ScanApiStub.m; sourceTree = "<group>"; };
 /* End PBXFileReference section */
 
 /* Begin PBXFrameworksBuildPhase section */
@@ -827,7 +829,6 @@
 				42BEF35F1E89FEE300632AB6 /* CoreData.framework in Frameworks */,
 				42BEF35D1E89FECD00632AB6 /* SystemConfiguration.framework in Frameworks */,
 				71BBA2291CEAC17E00C91DED /* libz.tbd in Frameworks */,
-				7187162C1C43428100F25860 /* libScanApiCore.a in Frameworks */,
 				718716291C433DA400F25860 /* AVFoundation.framework in Frameworks */,
 				718716271C433D9700F25860 /* AudioToolbox.framework in Frameworks */,
 				718716251C433D8B00F25860 /* ExternalAccessory.framework in Frameworks */,
@@ -1007,6 +1008,7 @@
 		42BEF35B1E89FECC00632AB6 /* Frameworks */ = {
 			isa = PBXGroup;
 			children = (
+				78DD35042ED5A69C001E4BCB /* libScanApiCore.a */,
 				42BEF35E1E89FEE300632AB6 /* CoreData.framework */,
 				42BEF35C1E89FECD00632AB6 /* SystemConfiguration.framework */,
 			);
@@ -1727,6 +1729,7 @@
 				719562351CF5733500C74A49 /* appearance */,
 				716387D2195408DA006E65E6 /* config */,
 				3C57169823CEA4120002E9FC /* Launch Screen.storyboard */,
+				78DD35072ED69EC3001E4BCB /* ScanApiStub.m */,
 			);
 			name = NPD;
 			sourceTree = "<group>";
@@ -2093,6 +2096,7 @@
 				7162A5741C58728D00AB630E /* DetailViewController.m in Sources */,
 				7162A52A1C58713200AB630E /* CategoryCellNPD.m in Sources */,
 				71DF748E1C57608F00F2789C /* UILabel+FontAppearance.m in Sources */,
+				78DD35082ED69EC3001E4BCB /* ScanApiStub.m in Sources */,
 				3C6831B52397887800AD5BD7 /* RAYTPlayer.m in Sources */,
 				712C40B61C7310F4000E6831 /* CartGeneralNotesViewController.m in Sources */,
 				712AFEDE1DBA050200254965 /* TableDrawable.m in Sources */,
@@ -2340,6 +2344,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CURRENT_PROJECT_VERSION = 2557411;
+				EXCLUDED_ARCHS = "";
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",
@@ -2369,6 +2374,20 @@
 					"\"SystemConfiguration\"",
 					"-v",
 				);
+				"OTHER_LDFLAGS[sdk=iphoneos*]" = (
+					"$(inherited)",
+					"-ObjC",
+					"-framework",
+					"\"CoreGraphics\"",
+					"-framework",
+					"\"MobileCoreServices\"",
+					"-framework",
+					"\"Security\"",
+					"-framework",
+					"\"SystemConfiguration\"",
+					"-v",
+					"-lScanApiCore",
+				);
 				PRODUCT_BUNDLE_IDENTIFIER = "usai.apex.iSales-NPD";
 				PRODUCT_NAME = "NPD Mobile";
 				PROVISIONING_PROFILE = "";
@@ -2388,6 +2407,7 @@
 				CODE_SIGN_IDENTITY = "iPhone Developer";
 				"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
 				CURRENT_PROJECT_VERSION = 2557411;
+				EXCLUDED_ARCHS = "";
 				FRAMEWORK_SEARCH_PATHS = (
 					"$(inherited)",
 					"$(PROJECT_DIR)/GoogleAnalytics/FirebaseAnalytics/Frameworks",
@@ -2417,6 +2437,20 @@
 					"\"SystemConfiguration\"",
 					"-v",
 				);
+				"OTHER_LDFLAGS[sdk=iphoneos*]" = (
+					"$(inherited)",
+					"-ObjC",
+					"-framework",
+					"\"CoreGraphics\"",
+					"-framework",
+					"\"MobileCoreServices\"",
+					"-framework",
+					"\"Security\"",
+					"-framework",
+					"\"SystemConfiguration\"",
+					"-v",
+					"-lScanApiCore",
+				);
 				PRODUCT_BUNDLE_IDENTIFIER = "usai.apex.iSales-NPD";
 				PRODUCT_NAME = "NPD Mobile";
 				PROVISIONING_PROFILE = "";

+ 42 - 0
RedAnt ERP Mobile/iSales-NPD/ScanApiStub.m

@@ -0,0 +1,42 @@
+//
+//  ScanApiStub.m
+//  iSales-NPD
+//
+//  Created by Zhang Rui on 11/26/25.
+//  Copyright © 2025 United Software Applications, Inc. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+// 该文件用于在 M芯片模拟器上 替换不支持模拟器的 ScanApi 库,请勿删除
+// 只有在模拟器编译时,才启用这段“替身”代码
+
+#if TARGET_OS_SIMULATOR
+
+#pragma mark - 欺骗 Linker 的假类
+
+// 下面列出报错提示“Undefined symbol”的那个类名
+// 根据您之前的报错,至少有一个 SktRuntimeLib 或类似的入口类
+// 假设您代码里主要用的是 ScanApiHelper,请根据实际报错的类名修改下面的名字
+
+// 示例:如果您代码里用了 [ScanApiHelper shared]
+//@interface ScanApiHelper : NSObject
+//+ (instancetype)sharedInstance;
+//- (void)open;
+//- (void)close;
+//@end
+//
+//@implementation ScanApiHelper
+//+ (instancetype)sharedInstance { return [[self alloc] init]; }
+//- (void)open { NSLog(@"[模拟器] ScanApi 已被 Stub 拦截,假装启动成功"); }
+//- (void)close { }
+//// 如果还有其他必须的方法被调用,在这里加个空实现即可,目的是不崩溃
+//- (id)forwardingTargetForSelector:(SEL)aSelector { return nil; }
+//@end
+
+// 示例:如果您还用了 SktClassFactory
+@interface SktClassFactory : NSObject
+@end
+@implementation SktClassFactory
+@end
+
+#endif

+ 13 - 10
common/customUI/CommonEditoriPad/iPadCommonEditorCellSignature.xib

@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="24412" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15509"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24405"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -17,8 +16,9 @@
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sue-1O-4Ae">
-                        <rect key="frame" x="15" y="59" width="150" height="22"/>
+                        <rect key="frame" x="16" y="60" width="150" height="20"/>
                         <constraints>
+                            <constraint firstAttribute="height" constant="20" id="Iq3-47-IKA"/>
                             <constraint firstAttribute="width" constant="150" id="UDc-vN-enF"/>
                         </constraints>
                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
@@ -26,22 +26,25 @@
                         <nil key="highlightedColor"/>
                     </label>
                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="*" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="0OT-KC-g4Q">
-                        <rect key="frame" x="5" y="59" width="10" height="22"/>
+                        <rect key="frame" x="6" y="62" width="10" height="20"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="20" id="Y76-MP-nTy"/>
+                        </constraints>
                         <fontDescription key="fontDescription" type="system" pointSize="25"/>
                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <nil key="highlightedColor"/>
                     </label>
                     <imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="FGP-bq-q4Z">
-                        <rect key="frame" x="171" y="10" width="582" height="120"/>
+                        <rect key="frame" x="172" y="11" width="581" height="118.5"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="118.5" id="sKk-W5-h6l"/>
+                        </constraints>
                     </imageView>
                 </subviews>
                 <constraints>
                     <constraint firstItem="FGP-bq-q4Z" firstAttribute="leading" secondItem="sue-1O-4Ae" secondAttribute="trailing" constant="6" id="1cJ-hn-c6a"/>
-                    <constraint firstItem="FGP-bq-q4Z" firstAttribute="centerY" secondItem="0OT-KC-g4Q" secondAttribute="centerY" id="1yX-O7-ded"/>
-                    <constraint firstItem="sue-1O-4Ae" firstAttribute="top" secondItem="akr-rY-J19" secondAttribute="topMargin" constant="48" id="2xs-i1-LyR"/>
+                    <constraint firstItem="FGP-bq-q4Z" firstAttribute="centerY" secondItem="akr-rY-J19" secondAttribute="centerY" id="48D-TZ-WeW"/>
                     <constraint firstItem="sue-1O-4Ae" firstAttribute="leading" secondItem="akr-rY-J19" secondAttribute="leadingMargin" id="BgW-T5-vZH"/>
-                    <constraint firstItem="FGP-bq-q4Z" firstAttribute="top" secondItem="akr-rY-J19" secondAttribute="topMargin" constant="-1" id="QYs-Wn-qS4"/>
-                    <constraint firstItem="sue-1O-4Ae" firstAttribute="centerY" secondItem="akr-rY-J19" secondAttribute="centerY" id="SnI-l0-0Ff"/>
                     <constraint firstItem="sue-1O-4Ae" firstAttribute="leading" secondItem="0OT-KC-g4Q" secondAttribute="trailing" id="UK6-sm-ehh"/>
                     <constraint firstAttribute="trailing" secondItem="FGP-bq-q4Z" secondAttribute="trailing" constant="15" id="We7-Uo-Etw"/>
                     <constraint firstItem="0OT-KC-g4Q" firstAttribute="baseline" secondItem="sue-1O-4Ae" secondAttribute="firstBaseline" id="bc7-WV-hoV"/>

+ 12 - 10
common/customUI/CommonEditoriPad/iPadCommonEditorCellSwitch.xib

@@ -1,9 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="15505" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="24412" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
     <device id="ipad9_7" orientation="portrait" layout="fullscreen" appearance="light"/>
     <dependencies>
-        <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15509"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="24405"/>
         <capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
     </dependencies>
     <objects>
@@ -17,29 +16,32 @@
                 <autoresizingMask key="autoresizingMask"/>
                 <subviews>
                     <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="1yb-aG-D0d">
-                        <rect key="frame" x="15" y="11" width="681" height="22"/>
+                        <rect key="frame" x="16" y="12" width="668" height="20"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="20" id="43U-v8-edN"/>
+                        </constraints>
                         <fontDescription key="fontDescription" type="system" pointSize="17"/>
                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <nil key="highlightedColor"/>
                     </label>
                     <switch opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="750" verticalHuggingPriority="750" contentHorizontalAlignment="center" contentVerticalAlignment="center" on="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Klu-0H-fjS">
-                        <rect key="frame" x="704" y="6" width="51" height="32"/>
+                        <rect key="frame" x="692" y="8" width="63" height="28"/>
                     </switch>
                     <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="*" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="iie-Ve-kmY">
-                        <rect key="frame" x="5" y="11" width="10" height="22"/>
+                        <rect key="frame" x="6" y="14" width="10" height="20"/>
+                        <constraints>
+                            <constraint firstAttribute="height" constant="20" id="zaX-h9-TRR"/>
+                        </constraints>
                         <fontDescription key="fontDescription" type="system" pointSize="25"/>
                         <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
                         <nil key="highlightedColor"/>
                     </label>
                 </subviews>
                 <constraints>
-                    <constraint firstItem="1yb-aG-D0d" firstAttribute="centerY" secondItem="w7g-IY-pIg" secondAttribute="centerY" id="5Nl-ag-FQ8"/>
                     <constraint firstAttribute="trailing" secondItem="Klu-0H-fjS" secondAttribute="trailing" constant="15" id="HPg-0e-qek"/>
-                    <constraint firstItem="1yb-aG-D0d" firstAttribute="top" secondItem="w7g-IY-pIg" secondAttribute="topMargin" id="bqZ-JP-SJb"/>
+                    <constraint firstItem="Klu-0H-fjS" firstAttribute="centerY" secondItem="w7g-IY-pIg" secondAttribute="centerY" id="JRr-sI-ncC"/>
                     <constraint firstItem="1yb-aG-D0d" firstAttribute="leading" secondItem="iie-Ve-kmY" secondAttribute="trailing" id="dNc-Vw-Pdt"/>
-                    <constraint firstItem="iie-Ve-kmY" firstAttribute="centerY" secondItem="w7g-IY-pIg" secondAttribute="centerY" id="ewW-IE-021"/>
                     <constraint firstItem="Klu-0H-fjS" firstAttribute="leading" secondItem="1yb-aG-D0d" secondAttribute="trailing" constant="8" id="kaE-ZB-B1z"/>
-                    <constraint firstItem="Klu-0H-fjS" firstAttribute="top" secondItem="w7g-IY-pIg" secondAttribute="topMargin" constant="-5" id="tij-zb-9oh"/>
                     <constraint firstItem="iie-Ve-kmY" firstAttribute="baseline" secondItem="1yb-aG-D0d" secondAttribute="firstBaseline" id="vGk-6e-FDY"/>
                     <constraint firstItem="1yb-aG-D0d" firstAttribute="centerY" secondItem="Klu-0H-fjS" secondAttribute="centerY" id="vQx-eN-LHo"/>
                     <constraint firstItem="1yb-aG-D0d" firstAttribute="leading" secondItem="w7g-IY-pIg" secondAttribute="leadingMargin" id="wlK-BP-fb6"/>