مبني الواجهة في Xcode | أصلي، ترجم بواسطة AI
هذا ملف XML في صيغة XIB (Xcode Interface Builder)، يستخدم لتحديد واجهة المستخدم لمتجر macOS مكتوب في Cocoa. بشكل خاص، يحدد هذا الملف XIB نافذة إعدادات لمتجر يسمى “Reveal-In-GitHub.” دعني أشرح لك ذلك خطوة بخطوة:
نظرة عامة
يحدد هذا الملف نافذة تحمل عنوان “Reveal-In-GitHub Settings” مع عناصر واجهة مستخدم مختلفة مثل الأزرار، حقول النص، ومشاهدة مخصصة. تم تصميمه باستخدام Interface Builder (جزء من Xcode) ويستخدم Auto Layout لتوضع العناصر بشكل ديناميكي. يتم التحكم في النافذة بواسطة فئة مخصصة تسمى 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">
- يحدد أن هذا ملف XIB لمتجر macOS Cocoa، باستخدام الإصدار 3.0 من صيغة XIB.
toolsVersion="9059"
وsystemVersion="14F27"
يشيران إلى إصدارات Xcode و macOS المستخدمة عند إنشاء هذا الملف.useAutolayout="YES"
يعني أن التكوين يتكيف بشكل ديناميكي بناءً على حجم النافذة أو دقة الشاشة.
- التعاليات
<dependencies> <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9059"/> </dependencies>
- يرجع إلى الإضافة Cocoa لـ Interface Builder، والتي توفر الإطار لعناصر واجهة المستخدم macOS.
-
الأشياء يحدد هذا القسم جميع الأشياء في الواجهة، بما في ذلك النافذة، المشاهد، الأزرار، وربطاتها.
- مالك الملف (
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>
- مالك الملف هو فئة التحكم (
RIGSettingWindowController
) التي تدير هذه النافذة. - لديه مخرجات (ربطات) إلى المشاهدة الرئيسية، مشاهدة التكوين، والنافذة نفسها، مما يربط عناصر واجهة المستخدم بالرمز.
- مالك الملف هو فئة التحكم (
- النافذة
<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>
- المشاهدة الرئيسية تملأ النافذة وتحتوي على جميع عناصر واجهة المستخدم (المشاهد الفرعية).
- مالك الملف (
-
عناصر واجهة المستخدم (المشاهد الفرعية) voici بعض العناصر الرئيسية داخل المشاهدة الرئيسية:
- حقول النص
<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,” “⌃⇧⌘ +” (الاختصار Control+Shift+Command)، و “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"
) بدلاً من استغلال قيود Auto Layout بالكامل، مما يعني أن المواضع محفوظة في البكسلات. قد يجعل ذلك أقل مرونة عبر مختلف أحجام الشاشة ولكن أسهل في التصميم.
لماذا استخدام XIB؟
يسمح ملفات XIB للمطورين بتصميم واجهات المستخدم بشكل مرئي في Interface Builder لـ Xcode، وربطها بالرمز عبر المخرجات والأفعال. يربط هذا الملف واجهة المستخدم (الأزرار، النص، إلخ.) بفئة RIGSettingWindowController
التي تتعامل مع المنطقية.