印象派なうをアップデートするために英語版の動作確認をしていたら、”Clear”ボタンを押すと”クリア”ボタンに文字列が変わってしまう現象が見つかりました。
調べたところ、原因と対策がわかったのでメモしておきます。
原因
以下のように UIButton のローカライズをすると、ボタンを押したら文字列が xib ファイルで設定されている文字列に変わってしまいます。
clearButton.titleLabel.text = NSLocalizedString(@"Clear", @"クリア");
対策
下のようにすれば、大丈夫です。
[clearButton setTitle:NSLocalizedString(@"Clear", @"クリア") forState:UIControlStateNormal];
[clearButton setTitle:NSLocalizedString(@"Clear", @"クリア") forState:UIControlStateHighlighted];
ボタンが Disable 状態にもなるときは、さらに次を追加すれば良いです。
[clearButton setTitle:NSLocalizedString(@"Clear", @"クリア") forState:UIControlStateDisabled];
ボタンが押下され続ける事を考慮して,以下のような記述も必要かと存じます,
[clearButton setTitle:NSLocalizedString(@”Clear”, @”クリア”) forState:UIControlStateSelected];
ご指摘ありがとうございます。
ただ、動作確認したところ、ボタンを押下し続けても UIControlStateSelected の状態にはなりませんでした。setSelected などを呼ばなくても UIControlStateSelected の状態になるのでしょうか??