問題タブ [nsview]

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 投票する
2 に答える
9105 参照

objective-c - Macバンドルにフォントを埋め込む

私は自分が書いているプログラムを持っています。派手なフォントを使いたいです。フォントをバンドルに埋め込んで、そこから使用できますか?

私のコード...

0 投票する
4 に答える
2596 参照

objective-c - NSDocumentの印刷

ドキュメントを印刷しようとしています。ドキュメントは、NSImageRepsの配列、または複数のページを持つ単一のNSPDFImageRepです。NSPrintOperationクラスを使用してこれを印刷する方法を理解するのに問題があります。

NSPrintOperationは、印刷するためにNSViewを必要としているようです。計算された位置で各画像を手動でビューに追加してから、ページネーションを実行させる必要がありますか?それはココアの精神ではないようです...私が見逃しているテクニックはありますか?

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

cocoa - NSMenuItem のアウトレットである NSView の NSTableView と NSSearchField が機能しない

のアウトレットNSViewとして設定されているがあります。ビューには(内に) とが含まれています。ユーザーが特定のをクリックすると、 が表示されます。Xcode (ビルドして実行) からアプリケーションを起動すると、コントロールは正常に動作しますが、Finder から (ユーザーがそうするように) 起動すると、コントロールは機能せず、フォーカスもありません。私のアプリケーションは. 誰でも私を助けることができますか?ありがとう。view:NSMenuItemNSTableViewNSScrollViewNSSearchFieldNSMenuNSStatusItemLSUIElement

0 投票する
2 に答える
4893 参照

objective-c - カスタム NSView のサブビューは、スーパービュー内に収まるようにサイズを変更しています

サブビューを含むカスタム NSView があります。この問題を解決するために、最上位ビューは単にコンテナーとして機能し、ウィンドウ内に収まるように自動的にサイズ変更されます。そのサブビューは、ウィンドウの端から 10 ピクセルはめ込まれた長方形を描画します。ただし、下部は除きます。ウィンドウのサイズが変更されて長方形全体が表示されるまで、ウィンドウによって切り取られる必要があります。ただし、意図したとおりに動作せず、スーパービューの高さがそれよりも小さい場合、代わりに長方形の高さを縮小します。これを回避し、スーパービューが小さいときに適切な高さにとどまり、代わりにクリップされるようにするにはどうすればよいですか?

親ビューの実装コードは次のとおりです。

サブビューは次のとおりです。

0 投票する
0 に答える
583 参照

cocoa - NSTextViewのadjustScrollメソッド

Cocoa テキスト エディターでタイプライター スクロールを実装しようとしています。スクロール ビューの垂直方向に挿入ポイントを中央に配置します。

NSClipViewこの目的のために、メソッドを提供するためにサブクラス化しましscrollToPointWithoutConstraintた。このメソッドは、 を呼び出さずに指定されたポイントまでドキュメントをスクロールしますconstrainScrollPoint。短いドキュメントの場合、ドキュメントの境界を超えてスクロールしない限り、挿入ポイントを中央に配置できないため、これが必要です。

これまでのところ、これはかなり簡単なようで、私が望むことを行います。スクロールバーを使用してスクロールしようとすると、問題が発生します。スクロール ビューの一部にドキュメントの境界外の領域が含まれるように、ドキュメントの最後までスクロールした場合、少しずつ上にスクロールしようとすると、スクロール ビューがジャンプし、すぐにドキュメントの実際の境界に固定されます。

メソッドをサブクラス化NSTextViewしてオーバーライドする必要があるかもしれないと考えています。adjustScrollこれが私の実際の質問の始まりです。にproposedVisibleRect渡される はadjustScroll、ドキュメントの実際の境界内に収まるように寸法が調整されています。proposedVisibleRect呼び出される前に値を変更できる方法はありadjustScrollますか? あるいは、私はこれについて完全に間違っていますか?この時点で、どんな提案も大歓迎です。

0 投票する
9 に答える
17733 参照

objective-c - NSCollectionView での選択の強調表示

私は、NSCollectionViewマイナーではあるが重大な例外を 1 つ扱っています。コレクション内の選択された項目を取得して強調表示します。

私は Snow Leopard の前にこのすべての作業を行っていましたが、何かが変わったようで、指を置くことができないのでNSCollectionView、基本的なテストに戻って、NSCollectionView を作成するための Apple のドキュメントに従いました。

http://developer.apple.com/mac/library/DOCUMENTATION/Cocoa/Conceptual/CollectionViews/Introduction/Introduction.html

コレクション ビューは、クイック スタート ガイドに従って正常に動作します。ただし、このガイドでは、 以外の選択については説明しません"There are such features as incorporating image views, setting objects as selectable or not selectable and changing colors if they are selected"

NSCollectionViewこれを例として使用して、コントローラー キーを使用しselectionIndexesてArray Controller を にバインドする次のステップに進みましたNSCollectionViewNSCollectionViewまた、IBで選択できるように設定しました。

NSCollectionViewほとんどの Cocoa UI ビューとは異なり、デフォルトで選択されたハイライトがないように見えます。

したがって、私の問題は実際には関連する問題に帰着しますが、2 つの異なる質問があります。

  1. アイテムの選択をキャプチャするにはどうすればよいですか?
  2. アイテムのハイライトを表示するにはどうすればよいですか?

NSCollectionViewのプログラミング ガイドはほとんどなく、Google を介したほとんどの検索では、Snow Leopard より前の実装が表示されるか、別の XIB ファイルのビューが使用されているようです。

後者 (ビュー用の別の XIB ファイル) の場合、これが前提条件である理由がわかりません。そうしないと、Apple がコレクション ビュー アイテムと同じバンドルにビューを含めなかったのではないかと疑っていたでしょう。

これが「木を見て木が見えない」問題になることはわかっています。一瞬。

いつものように、ありとあらゆる助けが大歓迎です。

更新 1

わかりましたので、選択したアイテムを見つけることを考えましたが、まだハイライトを理解していません。選択した項目を理解することに興味がある場合 (Apple ガイドに従っていると仮定します):

コントローラー (私のテストケースでは App Delegate) に以下を追加しました:

In awakeFromNib

新しい方法

非 GC の割り当てを解除することを忘れないでください

まだハイライト解像度を探しています...

更新 2

Macatomy のアドバイスを受けましたが、まだ問題がありました。関連するクラスメソッドを投稿して、どこが間違っているかを確認してください。

MyView.h

MyView.m

MyCollectionViewItem.h

"MyCollectionViewItem.m*

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

cocoa - Automator のワークフロー ビューを模倣するには?

Automator のAMWorkflowView.

私が達成したい基本的な機能:

  • サブビューの配置
  • 展開/折りたたみ状態でのサブビューの表示
  • 複数選択
  • ドラッグアンドドロップ

Cocoa に慣れるために、NSView主にカスタム サブビューのコンテナーとして機能し、それらの配置と複数選択を処理するカスタムから始めました。サブビューも のサブクラスでありNSView、ボタン、ラベル、ポップアップ メニューなど、さまざまな量のビュー自体が含まれているため、異なる高さを持つことができます。これは非常にうまく機能しましたが、先に進む前に、MVC パターンに従ってすべてが整頓されていることを確認したいと思います。

ビューコンテナの実装を容易にするクラスがすでにCocoaにあるのではないかと思いNSCollectionViewます。 ただし、異なるサイズのビューを に表示する(簡単な) 方法はないようNSCollectionViewです。カスタムの実装を続行する必要がありますかNSView(おそらく、NSArrayController選択と並べ替えのサポートに を使用します)、またはより良い方法はありますか?

どんな助けでも大歓迎です

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

cocoa - NSViewで画像をリセットする

これは非常に単純な質問だと思いますが、私はプログラミングに慣れていないので、間違った方向に進んでいる可能性があります。

私はObjective-Cライティング端末アプリケーションの基本を理解しており、CocoaGUIの使用方法を自分で学んでいます。

簡単なボタンを使用して、乱数をテキストフィールドに繰り返し送信するメソッドに接続する 方法を理解してIBOutletいます。IBAction

NSViewファイルを追加し、それをInterface Builderのカスタムビューに接続し、アプリケーションの起動時にビュー内のランダムなポイントを通るパスを描画する 方法を理解しています。

(私はこのコードを- (void)drawRect:(NSRect)dirtyRect、ファイルの作成時に宣言されるメソッド内に配置しています)。

私が理解できないように見えるのは、ボタンをアクションに接続して、ビューを「更新」する方法です。この場合、パスに接続された別のランダムなポイントのセットを再入力します。ドキュメントを見ると、どういうわけか使うべきだと思います

しかし、私がこれまで試したことは何もうまくいきませんでした。教えてください、私はここで何が欠けていますか?

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

objective-c - カスタム ビューに NSString を表示する

NSTextFieldNSButtonおよびNSView. に何かを入力しNSTextfieldてボタンを押すと、テキストが に描画されますNSView。これまでのところ、ビューを除いてすべてが接続され、機能しています。

ボタンを押すたびにテキストがビューに描画されるように、テキストとビューを接続するにはどうすればよいですか?

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

cocoa - Cocoa UI 要素が更新されない

NSView オブジェクト内でインスタンス化されたオブジェクトへのアウトレット接続を持ついくつかの Cocoa UI 要素があり、NSViewController によってそこに配置されます。これらの要素、明確なプログレス バーとテキスト ラベルは更新されていません。値が常に変化しているにもかかわらず、プログレス バーは死んでいて空です。テキスト ラベルは [textLabel setHidden:NO] によって再表示されません。テキスト ラベルは変更されません。その文字列。

私が知っていること:

  • 値のバインドとコードでの設定に違いはありません。どちらにしても何も変わりません。
  • コンセントの接続を確認しました。彼らはすべてそこにいます。
  • [X displayIfNeeded] を試してみました。ここで、X は UI オブジェクト自体、含まれている NSView、およびメイン ウィンドウです。変わりはない。
  • [progressBar setUsesThreadedAnimation:YES] 違いはありません。興味深いことに、プログラムの途中で progressBar を見ると、_threadedAnimation はまだ NO です。
  • これらすべてのアウトレットを保持し、インポート操作を実行するオブジェクトは、NSViewController オブジェクトが所有する NSOperationQueue にあります。

ありがとう!

編集: 提案されているように、[self performSelectorOnMainThread:@selector(updateProgress:) withObject:[NSNumber numberWithInt:myObject] waitUntilDone:NO] を呼び出しました。(waitUntilDone:YES も試しました。) まだ更新されていません。デバッガーは updateProgress: がメイン スレッドで実行されていることを明確に示しているため、何が欠けているのかわかりません。