
[code]

    extension AddViewController: UITableViewDelegate, UITableViewDataSource {
        func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
            let topicArray = us.array(forKey: topicArrayKey) as! [String]
            return topicArray.count
        }
        
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
            let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
            let topicArray = us.array(forKey: topicArrayKey) as! [String]
            cell.textLabel!.text = topicArray[indexPath.row]
            return cell
        }
        
        func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCell.EditingStyle, forRowAt indexPath: IndexPath) {
            if editingStyle == .delete {
                var topicArray = us.array(forKey: topicArrayKey) as! [String]
                topicArray.remove(at: indexPath.row)
                us.set(topicArray, forKey: topicArrayKey)
                tableView.deleteRows(at: [indexPath], with: .automatic)
            }
        }
    }
    
[/code]


CC BY-SA 4.0
2022-12-29T12:43:25.103
93092
2023-01-02T05:57:11.317
2023-01-02T05:57:11.317
3060
56279
question
swift
cellを左にスワイプさせ「delete」文字を「削除」文字に変更して表示させたい


もしユーザーの言語設定に関係なく常に「削除」というテキストを表示したいのであれば、`tableView(_:titleForDeleteConfirmationButtonForRowAt:)`というデリゲートメソッドを実装して、表示したい文字列を返します。

[code]

    override func tableView(_ tableView: UITableView, titleForDeleteConfirmationButtonForRowAt indexPath: IndexPath) -> String? {
      ...
      ...
      return "削除"
    }
    
[/code]

ただ、ユーザーの言語設定によって自動的にシステムが提供する翻訳テキストを表示したいのであれば、上記のデリゲートを実装する必要はなく、単にそのプロジェクトに日本語のローカライゼーションの設定を追加すればいいです。

[![画像の説明をここに入力](https://i.stack.imgur.com/74yYo.png)](https://i.stack.imgur.com/74yYo.png)

特にローカライズのテキストを用意する必要はなく、日本語のローカライズの設定があれば、ユーザーの使用言語が日本語の場合にはその部分は「削除」が表示されます。他の言語もサポートするのであれば必要な言語のローカライゼーションの設定を追加します。


CC BY-SA 4.0
2023-01-01T20:49:31.977
93142
2023-01-01T20:49:31.977
5519
93092
answer