Xcode GitHubアカウント追加

Xcodeのアカウント設定に[Source Control Accounts]という項目がありGitHubが設定できます。メニュー[Xcode|Preference…]から[Accounts]画面を開きます。画面左には[Apple IDs]に自分のApple IDが登録されているかと思います。画面の左下に[+]ボタンがついているので [+]ボタンを選択[Select the type of Account you would like to add:]画面リストをスクロールすると[GitHub]が出てきますので[Continue]します。

上のような[Sign in to your GitHub Account]ダイアログが出ます。AccountとTokenを入れるのですがここに入れるトークンは、GitHub側で設定します。設定方法の詳細は、下記URL(doc.github.com)に書いています。

https://docs.github.com/en/github/authenticating-to-github/creating-a-personal-access-token

ブラウザからGitHubにログイン後、右上の自分のアイコン部分をクリックすると下のようなメニューが縦に出てきます。

Settings]をクリックするとセッティング画面に切り替わります。

https://github.com/settings/profile

画面左側にメニューリストが縦で出ています。その中の、下のほうに[Developer settings]があるので選択します。

GitHub AppsOAuth AppsPersonal access tokens]3つの項目があるので「Personal access tokens」を選択します。

Personal access tokens]画面の右側に[Generate new token]ボタンがあるのでクリックしますと、「New personal access token」画面に切り替わります。

Note]に解りやすい名前を入れておいて、[Select scopes]で必要な項目にチェックします。入力が終わったら下のほうに[Generate token]をクリックします。

画面が切り替わり、下のようにトークンが表示されいます。

このトークンと自分のGitHubアカウントを、Xcodeの[AccountsSelect the type of Account you would like to add:]画面[GitHub]で選択した[Sign in to your GitHub Account]ダイアログのAccountとToken項目に入力します。

Sign in]ボタンをクリックし成功すると下のように[Accounts]項目に追加されていることが確認できます。

XcodeGitHubアカウント追加できるとXcodeメニューの[FileSwift PackagesAdd Package Dependency…]でダイアログが出るので、そこでProjectを選択

Next]すると下のようなPackageリストが表示されます。

GitHubから様々なPackageダウンロードし利用することもできるようになります。

SwiftUI EditButton 編集モードに切り替えるボタン

EditButton SwiftUI

SwiftUIでのEditButtonは、Viewの.editModeBinding<EditMode>)を切り替えるためのボタンです。下記はシンプルな実装方法です。

struct EditButtonTest: View {
    var body: some View {
        EditButton()
    }
}

上記のように書くとiOSの画面ど真ん中に[Edit]というボタンが配置されています。実行し[Edit]ボタンをタップすると[Done]に切り替わります。

[Edit|Done]の切り替えを確認する場合、下記のような@Environmentを宣言します。

@Environment(\.editMode) var mode

切り替えを確認する場合上記のmode?.wrappedValueが[.inactive|.transient|.active]で判断できます。

下のようにテキストフィールドを配置し、EditをタップするとTextFieldに書き込みができるように実装してみます。

struct EditButtonTest: View {
    @Environment(\.editMode) var mode
    @State var edit1: String = "ダミー"
    var body: some View {
        VStack{
            HStack{
                Spacer()
                EditButton()
            }
            HStack{
                Text("名前")
                    .padding(.all, 4.0)
                if self.mode?.wrappedValue == .inactive {
                    TextField("Name",text: $edit1).padding(.all, 4.0).disabled(true)
                }
                else {
                    TextField("Name", text: $edit1)
                        .padding(.all, 4.0).border(Color.gray, width: 2)
                    Button(action: {
                        self.edit1 = ""
                    }){
                        Image(systemName: "nosign")
                            .foregroundColor(.red)
                    }
                        
                }
                Spacer()
            }
            
            Spacer()
        }
        .padding(.horizontal)
    }
}

実行すると下のような挙動です。

EditButton SwiftUI

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED