私は、UITextView、UIToolBar と UIBarButtonItem の 3 つの要素を構成する iPhone のビューに取り組んでいます。
目標は、UIBarButtonItem のスタイルを「編集」(UIBarButtonSystemItemEdit) から「完了」(UIBarButtonSystemItemDone) に変更し、新しいセレクターを新しいメソッドに更新することです。
まず、次のコードを試しましたが、うまくいきません。
この考えを手伝ってくれませんか?
私は、UITextView、UIToolBar と UIBarButtonItem の 3 つの要素を構成する iPhone のビューに取り組んでいます。
目標は、UIBarButtonItem のスタイルを「編集」(UIBarButtonSystemItemEdit) から「完了」(UIBarButtonSystemItemDone) に変更し、新しいセレクターを新しいメソッドに更新することです。
まず、次のコードを試しましたが、うまくいきません。
この考えを手伝ってくれませんか?
この動作を持つ組み込みのバー ボタンがeditButtonItem
あり、UIViewContoller のプロパティを介して取得します。そのボタンをタブで押すと、元のビュー コントローラーが編集モードに変わり、ボタンが完了ボタンに切り替わります。
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = self.editButtonItem;
}
IB を介してボタンを追加した場合は、識別子をカスタムに設定してください。また、適切な IBOutlet とプロパティを使用して .h にボタンを割り当てます。.m でボタンを合成します。
次に、コードで次の操作を行います。
// Set to done
editButton.style = UIBarButtonItemStyleDone;
editButton.title = @"Done";
// Set back to edit
editButton.style = UIBarButtonItemStyleBordered;
editButton.title = @"Edit";
ボタンを変更するには、これを使用して [完了] ボタン
[self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStyleDone];
ボタンを編集ボタンに変更するには、これを使用します
[self.navigationItem.rightBarButtonItem setStyle:UIBarButtonItemStyleBordered];
私は最終的にこのようなことをしました。残念ながら、タイトルを直接設定しても機能しませんでした。何らかの理由でタイトルが nil であり、別の値に設定できませんでした。self.editButton は、ターゲットとアクションが設定された IBOutlet から取得されます。このコードは ARC を使用しています。これが誰かに役立つことを願っています。
NSString *title = app.settings.editing
? NSLocalizedString(@"Done", @"")
: NSLocalizedString(@"Edit", @"");
UIBarButtonItemStyle style = app.settings.editing
? UIBarButtonItemStyleDone
: UIBarButtonItemStyleBordered;
UIBarButtonItem *editButton
= [[UIBarButtonItem alloc] initWithTitle:title
style:style
target:self.editButton.target
action:self.editButton.action];
self.navigationItem.rightBarButtonItem = editButton;