問題タブ [nsundomanager]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
179 参照

objective-c - サブビューからドキュメントにアクセスするためのより良い方法はありますか?

サブビューからアクセスする必要があるNSNotificationCenterやNSUndoManagerなどのクラスがドキュメントにあります。

今、私は次のようなことをすることでそれらにアクセスできます:

私が知らないより良いアプローチはありますか?ありがとう。

0 投票する
1 に答える
329 参照

cocoa - NSUndoManager - 元に戻すボタンが表示されない

会議のあるドキュメントがあります。ミーティングを開始するときに、undoManager がドキュメントの undoManager を指すように設定しました。同様に、私の会議には出席者 (Person のリスト) がいます。各 Person オブジェクトは、ドキュメントへの単なるポインターである会議の undoManager を指すだけです。

会議への出席者の追加と削除の取り消しは、その人物の属性の重要な値を観察し始めるまで機能していました。

私が間違っていることについてのアイデアはありますか? 出席者を追加および削除すると、元に戻すボタンがアクティブになりません。同様に、人の名前/レートを変更すると、元に戻すボタンが表示されません。

ドキュメント.m

meeting.h ---

ミーティング.m

0 投票する
1 に答える
3627 参照

objective-c - NSUndoManager やり直し機能の実装が難しい

NSUndoManageriOS アプリにを実装しようとしています。元に戻す機能は機能しましたが、やり直し部分は機能しませんでした。私は iOS 開発にまったく慣れていません。これを使用したNSUndoManagerのはこれが初めてなので、おそらく些細なことです。

私のアプリはペイント/メモ作成アプリです。配列に最後の10UIImage秒の元に戻す/やり直しスタックがあります(これが最も効率的な方法かどうかはわかりません)。ユーザーが現在の画像に変更を加えると、古い画像がスタックにプッシュされ、配列に既に 10 個のオブジェクトがある場合は、配列の最初の画像が削除されます。int配列内のオブジェクトを追跡し、正しい画像が表示されるようにするために使用するインスタンス変数があります。私のコードは次のようになります。

元に戻すボタンまたはやり直しボタンをクリックすると、 resetImageが呼び出され、現在の画像がイメージ スタック内の次または前のオブジェクト (undoRedoStackIndex の現在の値) に設定されます。

ソリューション && || それを行うためのより良い方法をいただければ幸いです。

0 投票する
3 に答える
1338 参照

cocoa - WebViewのNSUndoManagerの取り消しアクションを削除する

ビュー階層にスワップインおよびスワップアウトするWebViewがいくつかあります。これらのWebViewの一部にはフォームフィールドが含まれているため、editingDelegateを実装して、ドキュメントにNSUndoManagerを提供します。

問題は、WebViewで入力を行うと、UNDOスタックに配置されるアクションが生成されることです。ビューが階層から削除された後も、アクションは元に戻るスタックに残ります。その時点で、ユーザーがCmd-Zを使用して「入力を元に戻す」と、-undoEditing:がWebEditorUndoTargetの割り当て解除されたインスタンスに送信されるため、例外がスローされます。(WebKit実装で使用されるプライベートクラス。)

ターゲットを参照できないため、-removeAllActionsWithTarget:を使用できません。唯一の解決策は、WebViewの取り消し登録を無効にすることだと思われます。

私は何かが足りないのですか、それともこれはWebViewの制限ですか?

0 投票する
1 に答える
432 参照

objective-c - サブビューとして textVIew を追加および削除する NSUndoManager

NSUndo マネージャを使用してサブビューを追加または削除するにはどうすればよいですか。ビュー コントローラのテキストビューかもしれません。誰でも私を助けてくれませんか..

0 投票する
1 に答える
225 参照

objective-c - ドキュメントベースのアプリケーションの NSUndoManager の間違った動作

私のドキュメント ベースのアプリでは、[self undoManager] に対して prepareWithInvocationTarget と registerUndoWithTarget を呼び出します。ただし、[編集] メニューの [元に戻す] と [やり直し] は空白のままです。[[self undoManager] undo] を呼び出すことで、手動で元に戻すことができます。

念のため、prepareWithInvocationTarget と registerUndoWithTarget という名前の新しいプロジェクトを作成しました。魔法!Edit メニューの Undo/Redo 要素をクリックできるようになりました。

これにはどのような理由が考えられますか? インターフェイスビルダーで接続を確認しようとしましたが、作成した新しいプロジェクトと同じです。それを修正する方法はありますか?

0 投票する
1 に答える
253 参照

iphone - UITextView 元に戻す位置

の開始、中間、終了にいくつかの変更を加えますUITextView。次に、次のように段階的に元に戻します。

UITextView各 の後、対応する各undo位置にプログラムでスクロールしたいと思いますundo

undo最後の/次の位置を取得するにはどうすればよいですか?

0 投票する
1 に答える
660 参照

core-data - Xcode 4 を使用した Core Data および Undo アクション

Xcode 3 で開始された MacOS 用の Core Data プロジェクトはほとんどありませんが、Xcode 4 で適切に動作し、特に元に戻す/やり直しの管理に適しています。
しかし今、私は Xcode 4 から新しい Core Data プロジェクトを開始しましたが、元に戻すで問題に直面しています。Xcode 3 で作成されたプロジェクトの場合と同様に、UndoRedoメニュー項目がUndo:\Redo:First Responder のメソッドにリンクされています。しかし、メニューは常に無効になっていました。そこで、メニュー項目のプロパティ
から へのバインディングを作成しました。これにより、ユーザーがオブジェクトに変更を加えたときにメニューが有効になりますが、元に戻すアクションは効果がありませんでした。メニューは有効なままですが、元に戻すことはできませんでした。EnabledmanagedObjectContext.undoManager.canUndo / canRedo
undo を取得する唯一の方法は、メニュー項目の First Responder への接続を切断し、代わりに別の項目を AppDelegate の新しい IBActions に作成することでした。

このように (および と にEnableバインドされたプロパティを使用しcanUndocanRedo)、両方のメニュー項目が Core Data オブジェクトに対して期待どおりに機能します。とにかく、Xcode 3でこの問題が発生したことはありません.

他の誰かが Xcode 4 でこの問題に直面していますか? 古いテンプレートの問題を回避するために、Xcode 4.2.1 を最初から再インストールしましたが、同じ問題が再び発生します。
Xcode 3 もインストールするのは好きではありません。機能するプロジェクトから始めて、そのプロジェクトを Xcode 4 に移行するだけです。
私はググって、私が知っているすべてのフォーラム、Apple の議論も調べましたが、何も見つかりませんでした。私は10.7.2を使用しています。


UPDATE
Undo/Redo を AppDelegate にリンクすると、他の操作が中断されます。Undo/Redo は常にNSUndoManagerManagedObjectContext から呼び出されるため、アクションは First Responder にリンクされたままにする必要があります。
Xcode 3.2 に固執して、コア データ プロジェクトを最初から生成し、Xcode 4 から開く必要があります (バグがどこにあるかを発見する限り、おそらくテンプレートに...)

0 投票する
1 に答える
340 参照

cocoa - CocoaベースのMacOSXアプリケーションのMainMenu.xibの国際化に関する問題に直面しています

私はCocoaベースのMacOSXプロジェクトで作業しており、MainMenu.xibの国際化に関する1つの問題に直面しています。

メニュー項目では、すべてのタイトルをプログラムで国際化する必要があります。「切り取り」、「コピー」、「貼り付け」などのすべてのメニュー項目は、元に戻すおよびやり直しのメニュー項目のタイトルを除いて、setTitleを使用して国際化できます。これに加えて、プロジェクトフォームのテキストフィールドに何かを入力した後、元に戻すメニュー項目のタイトルが動的に「入力を元に戻す」に変更されました。「やり直し」も同じです。

他のメニューのタイトルやメニューアイテムのタイトルは、

MainMenu.xibの「編集」メニューおよび同様に、

「編集」メニューの下にあるNSMenuItem「コピー」の場合。

しかし、同じコードを使用すると、

menuItemのタイトルは「元に戻す」のままです

NSUndoManagerはメソッドundoMenuItemTitleおよびredoMenuItemTitleを提供しますが、NSUndoManagerは-setTitle:メッセージを「Undo」および「Redo」メニュー項目に送信しません。

では、タイトルの動的な変化を追跡し、「UndoTyping」も国際化するにはどうすればよいでしょうか。

MainMenu.xibのファーストレスポンダーを手動で取得し、そこからundomanagerオブジェクトを取得することは可能ですか?これにより、最初のレスポンダーに現在存在する元に戻すアクションを元に戻すメニュー項目でバインド解除して手動で元に戻す操作を実行できます。または、これらすべてを実行せずにプログラムでタイトルを変更することもできます。

誰かがこの問題に遭遇し、問題を解決したかどうかを知らせてください。

0 投票する
1 に答える
599 参照

iphone - NSUndoManager は、元に戻す/やり直しの描画のための iPhone アプリのやり直し/元に戻すスタックを保持しません。

Objective C を使用して iPhone アプリを構築しています。私のアプリでは、画像にストロークを描画しており、元に戻す機能とやり直し機能を実装したいと考えています。

私はこれに使用NSUndoManagerしました。これにより、1 レベル下の描画を元に戻すことができますが、私の要件は、可能な限り低いレベル (または少なくとも 10 レベル下) で描画を元に戻すことです。すでにsetLevelsOfUndoを 10 に設定していましたが、機能しません。

私は次のコードを使用しています:

どこが間違っているか教えてください。私はすでにこれについて長い間グーグルで調べてきましたが、機能の失敗の正確な原因は見つかりませんでした.