私は小さなステータスバーアプリを持っています。ウィンドウを閉じると保存され、アプリを終了すると保存されますが、テーブルビューで行を編集したり、配列コントローラーに何かを追加したりするたびに保存されるわけではありません。少なくとも「Enter」ヒットごと、または編集を確認するときに saveAction を呼び出す方法はありますか? 保存ボタンは私が探しているものではありません。前もって感謝します。
3 に答える
ビューコントローラーをテキストフィールドとテキストビューの両方のデリゲートとして設定するだけです。iOS 環境では、プロトコル UITextFieldDelegate および UITextViewDelegate をビュー コントローラーのヘッダー ファイルに追加し、それぞれ UITextField および UITextView のメソッドを実装し- (void)textFieldDidEndEditing:(UITextField *)textField
ます- (void)textViewDidEndEditing:(UITextView *)textView
。
UITextField (iOS) の代替として、UITextField- (BOOL)textFieldShouldReturn:(UITextField *)textField
で「enter」キーが押されるたびに呼び出されるという名前のデリゲート メソッドがあります。
Mac OSX 環境では、View Controller ヘッダー ファイルに適切なプロトコルを追加し (NSTextView の場合は NSTextDelegate を追加し、NSTextField の場合は NSControlTextEditingDelegate を追加します)、適切なメソッドを実装します: -(void)textDidChange:(NSNotification *)notification
NSTextView および- (BOOL)control:(NSControl *)control textShouldEndEditing:(NSText *)fieldEditor
NSTextField の場合。
これらのメソッドで必要なあらゆる種類の検証を実行し、[myMOC save:&error];
戻る前に呼び出しを行うことができます。