Xcode インターフェースビルダー | オリジナル、AI翻訳

Home PDF

これは、Cocoaで書かれたmacOSアプリケーションのユーザーインターフェースを定義するために使用される、XIB(Xcode Interface Builder)形式のXMLファイルです。具体的には、このXIBファイルは「Reveal-In-GitHub」というアプリケーションの設定ウィンドウを説明しています。ステップバイステップで解説します。

概要

このファイルは、「Reveal-In-GitHub Settings」とタイトル付きのウィンドウを定義し、ボタン、テキストフィールド、カスタムビューなどのさまざまなUI要素を含んでいます。Interface Builder(Xcodeの一部)を使用して設計され、要素の動的な配置にAuto Layoutが使用されています。このウィンドウは、RIGSettingWindowControllerというカスタムクラスによって制御されます。

主要なセクション

  1. ヘッダー情報
    <?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"は、ウィンドウのサイズや画面解像度に基づいてレイアウトが動的に調整されることを意味します。
  2. 依存関係
    <dependencies>
        <plugIn identifier="com.apple.InterfaceBuilder.CocoaPlugin" version="9059"/>
    </dependencies>
    
    • これは、Interface BuilderのCocoaプラグインへの参照であり、macOSのUI要素のフレームワークを提供します。
  3. オブジェクト このセクションでは、インターフェース内のすべてのオブジェクト(ウィンドウ、ビュー、ボタン、およびその接続)が定義されます。

    • ファイルの所有者(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要素(サブビュー)を含みます。
  4. UI要素(サブビュー) コンテンツビュー内の主要な要素は以下の通りです:

    • テキストフィールド
      <textField ... id="G1C-Td-n9Y">
          <rect key="frame" x="18" y="425" width="187" height="17"/>
          <textFieldCell ... title="Custom Menu Items" ...>
      
      • 位置(18, 425)に「Custom Menu Items」というラベルがあります。
      • 他のテキストフィールドには「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>
      
      • 位置(14, 13)に「Save」ボタンがあり、コントローラーのsaveButtonClcked:メソッドをトリガーします。
      • 他のボタンには「Clear Default Repos」および「Reset Default Menus」があり、それぞれ特定のアクションに結びつけられています。
    • カスタムビュー
      <customView ... id="IKd-Ev-B9V" userLabel="Config View">
          <rect key="frame" x="20" y="54" width="611" height="330"/>
      
      • ウィンドウの大部分を占めるカスタムビュー(おそらくプログラムによってポップレート)のプレースホルダーです。
  5. 接続
    • ボタンは、RIGSettingWindowControllerのメソッド(例:saveButtonClcked:clearButtonClicked:)にワイヤリングされており、ユーザーの操作がコードをトリガーするようにしています。

これは何をするのですか?

このXIBファイルは、「Reveal-In-GitHub」というmacOSアプリの設定ウィンドウを作成します。これは、おそらくGitHubの機能を他のアプリケーションに統合するツールです。このウィンドウは、ユーザーに以下を許可します:

レイアウトは固定されており(fixedFrame="YES")、Auto Layoutの制約を完全に活用していないため、異なる画面サイズでは柔軟性が低くなるかもしれませんが、設計は簡単です。

XIBを使用する理由

XIBファイルは、XcodeのInterface Builderでインターフェースを視覚的に設計し、アウトレットとアクションを介してコードに接続することを開発者に許可します。このファイルは、UI(ボタン、テキストなど)をRIGSettingWindowControllerクラスと橋渡しし、ロジックを処理します。


Back 2025.04.02 Donate