問題タブ [nscell]

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

objective-c - Interface BuilderでNSCellサブクラスを設計することは可能ですか?

NSTableViewで使用するためにNSCellをサブクラス化しようとしています。作成したいセルはかなり複雑なので、Interface Builderで設計してから、ペン先からNSCellをロードできると非常に便利です。

これは可能ですか?どうすればいいのですか?

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

objective-c - カスタム NSCell 内のクリック可能なリンク

内部にさまざまな要素 (画像、さまざまなテキスト) を含むカスタム NSCell があり、それらのテキスト ブロックの 1 つにさまざまなクリック可能なリンクが含まれている場合があります。NSAttributedString でリンクを正しく識別して青色に着色していますが、カーソルを手に変えてユーザーが実際にクリックできるようにする方法がわかりません。

現在、属性付きの文字列がセルに直接描画されていますが、これは明らかにクリックできませんが、NSCell は NSView を継承していないため、他の方法で追加する方法がわかりません。通常、サブビューとして NSTextField を追加するだけですが、この場合はそのようにはできません。

何かご意見は?

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

memory-management - コアデータとカスタム NSCell

Log2 つのエンティティ(属性textdate)のコア データを使用し、 からへTagの多対多のtags関係を持つおもちゃのアプリを構築しています。LogTag

ログをテーブルに表示したいので、次のようにします。

  • エンティティを( pic )に設定して IB にNSArrayControllerインスタンスを作成しましたLogControllerLog
  • NSTableViewにバインドされた列を持つ1 列を作成しましたLogController写真
  • LogControllerを使用して、アプリ内のデリゲート ( AppDelegate) をリンクしましたIBOutletAppDelegateも持っていmanagedObjectContextます。
  • プロパティを持つカスタムNSCellクラスを作成し、それをセルに描画しましたNSStringmainTexttagsText
  • メソッドで上記の 2 つのセル プロパティを設定しAppDelegateます- (void)tableView: willDisplayCell: forTableColumn: row:。(MainControllerテーブルのデリゲートでもあります)。現在のtagsTextログのタグを取得し、それらを単一のログに連結しますNSString

複数のタグを表示する行をマウスで選択すると、アプリがEXC_BAD_ACCESS. エラーが発生したのはそのときだけですが、何が原因なのかわかりません。

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

cocoa - NSTableViewでNSButtoncellタイプのセルの背景色を設定するにはどうすればよいですか?

これは私のテーブルビューデリゲートです:

通常のセルを表示することは問題なく機能しますが、NSButtonCellタイプ(チェックボックス用)のセルを追加すると、テーブルビューがフリーズします。それを修正する方法は?

どんな助けでもいただければ幸いです。

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

cocoa - NSCell はどのように表示されますか?

NSControl のセルがビュー階層にありません。私は正しいですか?

そうでない場合、ビュー階層にない場合、ビューにどのように描画されていますか?

ビュー/コントロールのサブクラスをコンテンツビューにドラッグアウトし、そのビューにボタンを追加して、最下位のコンポーネントをセルにしたいのでお願いします。したがって、セルはすべてのクリック イベントを取得し、何かを実行してから、それらをボタンに渡すことができます。

ウィンドウ ->ContentView -> CustomView ->(ボタン、ボタン、ボタン)


NSResponder さん、ありがとうございます。

Costique さん、私はいつも最初に Apple のドキュメントをチェックします。私はただ説明を求めていました。

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

objective-c - NSTableViewのカスタムNSCellでバインディングを使用してモデルオブジェクトを公開する

私は、比較的一般的なタスクだと思うことを実行しようと奮闘しています。をNSTableView介してその配列にバインドされているがありNSArrayControllerます。アレイコントローラのコンテンツは、モデルクラスのNSMutableArray1つ以上のインスタンスを含むに設定されています。NSObject方法がわからないのは、NSCellバインディングに適した方法でサブクラス内のモデルを公開することです。

説明のために、オブジェクトモデルは、名、名前、年齢、性別で構成される人物であると言います。したがって、モデルは次のようになります。

明らかに、クラスに適切なセッター、ゲッターinitなど。

私のコントローラークラスでは、、、および:を定義NSTableViewNSMutableArrayますNSArrayController

Interface Builderを使用すると、モデルを適切な列に簡単にバインドできます。

myPersonArray --> myPersonArrayController --> table column binding

これは正常に機能します。したがって、余分な列を削除し、NSArrayController(各行との間の関連付けを作成して維持する)にバインドされている1つの列を非表示のままNSArrayControllerにして、1つの非表示のNSTableView列と1つの非表示の列に移動します。NSCellサブクラスを作成し、適切な描画メソッドを配置してセルを作成します。私のawakeFromNib中で私はカスタムNSCellサブクラスを確立します:

これも、描画の観点からは問題なく機能します。カスタムセルが列に表示され、アレイコントローラー内のすべての管理対象オブジェクトに対して繰り返されます。オブジェクトを追加したり、アレイコントローラからオブジェクトを削除したりすると、それに応じてテーブルが更新されます。

しかし...私は自分のオブジェクトが私のサブクラスPersonModel内から利用できるだろうという印象を受けました。NSCellしかし、私はそれに到達する方法がわかりません。セッターとゲッターを使用してそれぞれを設定したくないのは、配列コントローラーからデータを参照するのNSCellではなく、データを格納することでモデルの概念全体を壊しているためです。NSCell

そして、はい、私はカスタムを持っている必要があるNSCellので、複数の列を持つことはオプションではありません。ここからどこへ?

GoogleとStackOverflowの検索に加えて、私はAppleのドキュメントで必須のウォークスルーを実行しましたが、答えが見つからなかったようです。私は茂みの周りを打ち負かす多くの参照を見つけましたが、何も含まれていませんNSArrayController。コントローラーは、モデルエンティティの他の要素(マスター/詳細シナリオなど)にバインドするときに非常に簡単になります。Core Dataを使用しているときに、多くの参照(回答はありませんが)も見つかりましたが、CoreDataを使用していません。

当たり前のように、私は提供できるどんな援助にも非常に感謝しています!

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

cocoa - NSImage の下に影を描く

現在、次のようにカスタム NSCell で NSImage を描画しています。

非常に単純に、その下に画像を描く方法を考えています。iPhone では、次を使用してこれを行いますCGContextSetShadow (currentContext, CGSizeMake(1, -1), 2)。UIImageを描画する直前ですが、Macでそれを行う方法に慣れていません。

どんな指針も素晴らしいでしょう。

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

objective-c - NSTextFieldCellまたは垂直テキスト(および色付き)を含むNSCellのみ

テーブルビューの列ヘッダーを垂直方向に表示するエレガントな方法を見つけるのに苦労しています(従来の方法から反時計回りに90度回転)。私は実際のNSTableHeaderCellとしてこれを行うことと結婚していません。NSTextFieldCellまたはNSCellをオーバーライドする方が簡単かもしれないと考えました。

セルには編集不可能なテキストのみが含まれていますが、通常は2行であり、コンテキストによっては列の残りの部分で色付けされる場合があります。

私はこれを行うカカオアプリを見つけることができないようです。ましてやオープンソースの例です。何かご意見は?

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

cocoa - NSFormatter に NSTextFieldCell を継続的に検証させる

Cocoa には、セルが NSTextFieldCell である NSOutlineView があります。セルには、特定のルール (float、または間にスペースを入れた float のペアなど) に従って書式設定された文字列である値が表示されます。テキストを検証するためにカスタム NSFormatter を作成しましたが、これは問題なく動作するようです。

ただし、セル(またはアウトラインビュー、何が原因かはわかりません)は、編集が終了する瞬間にのみフォーマッターを使用しているようです。テキスト フィールドにアルファベット文字を入力すると (書式設定規則に違反します)、これらの文字が表示されます。フォーマッタが機能していることに気付く唯一の方法は、キーボード フォーカスをこのセルから移動できなくなったことです。セルの内容を有効なフォームに戻すと、フォーカスを移動できます。

セルとアウトライン ビューの両方を「連続」に設定しました。

そもそもセルにテキストを入力できなかった方がよいでしょう。そのようにすることは可能ですか?

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

cocoa - Cocoa: 編集可能なテキスト領域を持つカスタム NSView を実装する方法は?

編集可能なテキスト領域を持つカスタム NSView を作成するために必要な最小限の実装は何ですか? これには NSTextFieldCell を使用できると思います。ビューでセルを描画することに成功しましたが (これは簡単です)、編集可能にするには、ビューとセルの間でより複雑な調整が必要なようです。サンプルコードはどこかにありますか?

アップデート。私の長期的な目標は、同じビュー上により多くの編集可能なテキスト領域を持つことであることを明確にするべきでした。知る限り、セルは本格的なビューよりも軽量であるため、その場合はセルを使用することをお勧めします。私の更新された質問は次のとおりです。適切な NSCell を使用して、編集可能なテキスト領域を持つカスタム NSView を作成するために必要な最小実装は何ですか?