問題タブ [nstableview]

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 に答える
500 参照

iphone - 最後の行を削除するNSTableViewの問題

TableViewControllerをいじってからしばらく経ちましたが、少し錆びています...しかし、セクションに表示する行がゼロの場合(配列が空の場合)に「うそをつく」ように設定したいと思います。 "をコントローラーに送信し、numberOfRowsInSectionに1を返します。次に、cellForRowAtIndexPathで、「このセクションは空です」という効果を示すUILabelを1つの行のセルに配置します。

問題は、テーブルが編集モードにあり、ユーザーが最後の行を削除すると、次のエラーが発生することです。

キャッチされなかった例外によるアプリの終了'NSInternalInconsistencyException'、理由:'無効な更新:セクション1の行数が無効です。更新後の既存のセクションに含まれる行数(1)は、それに含まれる行数と同じである必要があります。更新前のセクション(1)、およびそのセクションから挿入または削除された行の数(0が挿入、1が削除)。

スワイプして削除した後、テーブルを再描画しようとすると、最後の行がまだ残っていることに気付くのは気が動転しているようです。これをどこで/どのように処理する必要がありますか?確かに、私はAppleのHIG全体をある程度くずしているが、空のセクションの上にヘッダーだけがあるとユーザーを混乱させる...

ありがとう!

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

cocoa - NSTableView で編集可能な NSSecureTextFieldCell でバインディングを使用する方法はありますか?

いくつかの列を持つ があり、そのうちの 1 つは をとしてNSTableView使用するように設定されています。このテーブルにデータを提供するために適切に構成された を使用しています。NSSecureTextFieldCelldataCellNSArrayController

問題は、セキュリティで保護されたテキスト フィールドが機能しないことです。保持する文字列に適切な数のドットが表示されますが、編集できません! セキュア テキストを変更できません。

念のため、通常の で同じことを行いましたがNSTextFieldCell、すべてが魅力的に機能します。バインディングが適切に設定されており、列編集可能に設定されています。

Apple の開発者メーリング リストで同じ問題への参照を見つけることができましたが、そこに投稿された回避策は 2006 年のものです。

この特定の問題に対する修正はありますか?
または、おそらくバインディングの使用を引き続き許可する
、より良い回避策を誰かが持っていますか?

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

objective-c - パネルの最初のクリックに応答するNSTableView

ライブラリパネルをクリックまたはドラッグしたい場合は、インターフェイスビルダーで気づきました。ライブラリパネルに現在フォーカスがない場合でも、クリックする必要があるのは1回だけです。

同様に動作するパネルを作成しようとしています。

ウィンドウにフォーカスがない場合でも、NSTableViewにクリックを受け入れさせる簡単な方法はありますか?

ありがとう。

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

cocoa - CoreData ストレージを使用した NSTableView のドラッグ アンド ドロップ サポート

アプリケーションで NSTableViews を使用する必要があり、両方とも「CoreData」として保存されているデータを表示します。プログラム全体と同様に、TableView はかなり基本的なものです。

右側の TableView にはチェックリストのリストが表示され、左側にはこのチェックリストの内容が表示されます。ここで、ユーザーがチェックリスト内の項目を別のチェックリストにドラッグできるようにしたいと考えています。

Web でいくつかのチュートリアルとサンプル コードを見つけましたが、Cocoa を理解するにはあまりにも多すぎます。誰かがウェブページやチュートリアルなどを短くてわかりやすい説明で言及してくれたら素晴らしいでしょう.

どうもありがとう

編集: 明らかなはずですが、私のアプリケーションは Cocoa で作成され、Mac 上で実行されます。

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

cocoa - NSCollectionViewItemのインスタンスでNSTableViewを更新しています

私のセットアップでは、Macに接続されたボリュームのNSCollectionViewがあります。NSCollectionViewItemのビューには、そのボリュームのコンテンツを一覧表示するNSTableViewを含むNSBoxがあります。

NSTableViewにアイテムを追加/削除しようとすると、問題が発生します。NSBoxは一度初期化されたように見えるため、NSTableViewは1つだけです。これは、NSTableView内のデータを更新する場合、IBOutletでreloadDataを呼び出して、すべてのテーブルを更新させることができないことを意味します。

NSBoxのサブクラスにIBOutletを作成すると、インスタンスではnilになるため、それを介して呼び出すことはできません。

私が最も近いのは、列の行でオブジェクトを返すコードの周りに@try @catchを囲むことです。そのアイテムが存在しないために例外が発生するため、tableViewを取得してreloadDataを呼び出すことができます。その特定のNSTableViewを更新します。

これに伴う問題は、削除されたアイテムがテーブルの最後にある場合、またはアイテムが追加された場合、既存のすべてのアイテムを表示できるため、例外が発生しないことです。

NSCollectionViewItemのビューでNSTableViewを使用した経験はありますか?テーブルをどのように更新しましたか?

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

objective-c - NSTableView はテーブル内の要素の数を増やしませんか?

データ ソースとして表示される NIB のコントローラー オブジェクトを使用する NSTableView があります。NSTableView 非公式プロトコルを実装します。

この NSTableView は Core Data から値を取得します。アプリケーションを起動し、XML にあるすべての値を読み込んで表示します。

私の問題は、NSTableView がテーブルの最後に新しい行を追加していないように見えることです。永続的なストレージに値がない状態でアプリケーションを起動し、別の値を追加すると (XML に保存されていることがわかるので、値の追加は機能します)、テーブル ビューは単に新しい値を無視します。

テーブルの最後に追加されることがわかっている値を追加すると (内容はアルファベット順に整理されています)、新しい値は表示されません。

私と私が知っている値がテーブルの最後に行かない場合、値が追加され、テーブルに表示されますが、テーブルの最後の値は押し出されて消えます.

- (int)numberOfRowsInTableView:(NSTableView *)tv は、[tableView reloadData] を実行するときではなく、アプリケーションの起動時にのみ呼び出されることに気付きました。このイベントが発生する原因は何ですか? tableView で reloadData を呼び出す前に手動で起動しようとしましたが、うまくいかないようです。

これを引き起こしている可能性のあるアイデアはありますか?

誰もこのようなことに遭遇しましたか?何が考えられるかの手がかりはありますか?

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

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

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

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

何かご意見は?