Xcode Interface Builder का | मूल, AI द्वारा अनुवादित
यह एक XML फ़ाइल है XIB (Xcode Interface Builder) फ़ॉर्मेट में, जो एक macOS एप्लिकेशन के लिए उपयोगकर्ता इंटरफ़ेस को परिभाषित करने के लिए उपयोग किया जाता है, जो Cocoa में लिखा गया है। विशेष रूप से, यह XIB फ़ाइल एक “Reveal-In-GitHub” नामक एप्लिकेशन के लिए एक सेटिंग्स विंडो का वर्णन करता है। मुझे इसे आपके लिए कदम दर कदम समझाने दो:
अवलोकन
यह फ़ाइल एक “Reveal-In-GitHub Settings” नामक विंडो को परिभाषित करता है, जिसमें बटन, टेक्स्ट फ़ील्ड और एक कस्टम व्यू जैसे विभिन्न UI तत्व शामिल हैं। यह इंटरफ़ेस बिल्डर (Xcode का हिस्सा) के साथ डिज़ाइन किया गया है और तत्वों को डायनामिक रूप से पोजिशन करने के लिए ऑटो लेआउट का उपयोग करता है। इस विंडो को एक कस्टम क्लास RIGSettingWindowController
द्वारा नियंत्रित किया जाता है।
मुख्य खंड
- हेडर जानकारी
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <document type="com.apple.InterfaceBuilder3.Cocoa.XIB" version="3.0" toolsVersion="9059" systemVersion="14F27" targetRuntime="MacOSX.Cocoa" propertyAccessControl="none" useAutolayout="YES">
- यह बताता है कि यह एक macOS Cocoa ऐप के लिए एक XIB फ़ाइल है, जो XIB फ़ॉर्मेट का वर्जन 3.0 का उपयोग करता है।
toolsVersion="9059"
औरsystemVersion="14F27"
यह बताते हैं कि इसने बनने के समय उपयोग किए गए Xcode और macOS वर्जन हैं।useAutolayout="YES"
का मतलब है कि लेआउट विंडो आकार या स्क्रीन रिज़ोल्यूशन के आधार पर डायनामिक रूप से समायोजित होता है।
- निरभरताएँ
<dependencies> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9059"/> </dependencies>
- यह इंटरफ़ेस बिल्डर के लिए Cocoa प्लगइन का संदर्भ देता है, जो macOS UI तत्वों के लिए फ्रेमवर्क प्रदान करता है।
-
वस्तुएं इस खंड में इंटरफ़ेस में सभी वस्तुएं, जिसमें विंडो, व्यू, बटन और उनके कनेक्शन शामिल हैं, परिभाषित हैं।
- फ़ाइल का मालिक (
RIGSettingWindowController
)<customObject id="-2" userLabel="File's Owner" customClass="RIGSettingWindowController"> <connections> <outlet property="configsView" destination="IKd-Ev-B9V" id="z2z-MF-G88"/> <outlet property="mainView" destination="se5-gp-TjO" id="pGn-EC-mzi"/> <outlet property="window" destination="F0z-JX-Cv5" id="gIp-Ho-8D9"/> </connections> </customObject>
File's Owner
यह है नियंत्रण क्लास (RIGSettingWindowController
) जो इस विंडो को प्रबंधित करता है।- इसमें मुख्य व्यू, एक कॉन्फ़िग्स व्यू और विंडो खुद के लिए आउटलेट (कनेक्शन) हैं, जो UI तत्वों को कोड से जोड़ते हैं।
- विंडो
<window title="Reveal-In-GitHub Settings" ... id="F0z-JX-Cv5" userLabel="Settings"> <windowStyleMask key="styleMask" titled="YES" closable="YES" miniaturizable="YES" resizable="YES"/> <rect key="contentRect" x="527" y="176" width="651" height="497"/> <rect key="screenRect" x="0.0" y="0.0" width="1440" height="877"/>
- एक विंडो का वर्णन करता है जिसमें एक शीर्षक, बंद/छ喝/बढ़ा/घटा बटन और 651x497 पिक्सल का आकार है।
contentRect
इसकी पोजिशन और स्क्रीन पर आकार को निर्धारित करता है, जबकिscreenRect
पूरी स्क्रीन रिज़ोल्यूशन (1440x877) का वर्णन करता है।
- सामग्री व्यू
<view key="contentView" id="se5-gp-TjO"> <rect key="frame" x="0.0" y="0.0" width="651" height="497"/> <subviews>
- मुख्य सामग्री व्यू विंडो को भरता है और सभी UI तत्व (सबव्यू) को शामिल करता है।
- फ़ाइल का मालिक (
-
UI तत्व (सबव्यू) यहां मुख्य सामग्री व्यू के अंदर कुछ प्रमुख तत्व हैं:
- टेक्स्ट फ़ील्ड
<textField ... id="G1C-Td-n9Y"> <rect key="frame" x="18" y="425" width="187" height="17"/> <textFieldCell ... title="Custom Menu Items" ...>
- एक लेबल “Custom Menu Items” पोजिशन (18, 425) पर।
- अन्य टेक्स्ट फ़ील्ड में “Menu Title,” “⌃⇧⌘ +” (कंट्रोल+शिफ्ट+कमांड शॉर्टकट) और “URL Pattern” शामिल हैं।
- बटन
<button ... id="EuN-9g-Vcg"> <rect key="frame" x="14" y="13" width="137" height="32"/> <buttonCell ... title="Save" ...> <connections> <action selector="saveButtonClcked:" target="-2" id="efd-QE-4aQ"/> </connections>
- एक “Save” बटन (14, 13) पर जो नियंत्रक में
saveButtonClcked:
विधि को ट्रिगर करता है। - अन्य बटन “Clear Default Repos” और “Reset Default Menus” शामिल हैं, प्रत्येक को विशेष कार्यों से जोड़ा गया है।
- एक “Save” बटन (14, 13) पर जो नियंत्रक में
- कस्टम व्यू
<customView ... id="IKd-Ev-B9V" userLabel="Config View"> <rect key="frame" x="20" y="54" width="611" height="330"/>
- एक कस्टम व्यू (संभावित रूप से प्रोग्रामेटिक रूप से भरा हुआ) का एक प्लेसहोल्डर, जो विंडो के अधिकांश भाग को लेता है।
- टेक्स्ट फ़ील्ड
- कनेक्शन
- बटन
RIGSettingWindowController
में विधियों (जैसेsaveButtonClcked:
,clearButtonClicked:
) से वायर किया गया है, जिससे उपयोगकर्ता इंटरैक्शन कोड को ट्रिगर कर सकते हैं।
- बटन
यह क्या करता है?
यह XIB फ़ाइल एक macOS ऐप “Reveal-In-GitHub” के लिए एक सेटिंग्स विंडो बनाता है, जो संभवतः एक टूल है जो GitHub फंक्शनलिटी को किसी अन्य ऐप में इंटिग्रेट करने के लिए है। विंडो उपयोगकर्ताओं को अनुमति देता है:
- मेनू आइटम (शीर्षक और URL पैटर्न के साथ) को कस्टमाइज़ करें।
- अपने सेटिंग्स को सेभ करें।
- डिफ़ॉल्ट रिपोजिटरी को क्लियर करें या मेनू को डिफ़ॉल्ट मानों पर रीसेट करें।
लेआउट फिक्स्ड (fixedFrame="YES"
) है, न कि पूरी तरह से ऑटो लेआउट रेस्ट्रेंट्स का उपयोग करता है, जिसका मतलब है कि पोजिशन पिक्सल में हार्डकोडेड हैं। यह अलग-अलग स्क्रीन आकारों पर कम फ्लेक्सिबल हो सकता है, लेकिन डिजाइन करने में आसान हो सकता है।
XIB का उपयोग क्यों करें?
XIB फ़ाइलें डेवलपर्स को Xcode के इंटरफ़ेस बिल्डर में इंटरफ़ेस को दृश्य रूप से डिजाइन करने की अनुमति देते हैं, उन्हें कोड से आउटलेट और कार्यों के माध्यम से जोड़ते हैं। यह फ़ाइल UI (बटन, टेक्स्ट आदि) को RIGSettingWindowController
क्लास से जोड़ती है, जो तर्क को संभालता है।