質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.61%

  • Swift

    7068questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    4007questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • MacOS(OSX)

    1850questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。

NSTableViewで表示されている内容を取り出すことはできないでしょうか?

解決済

回答 1

投稿

  • 評価
  • クリップ 0
  • VIEW 124

icegreen

score 52

 前提・実現したいこと

Mac用のアプリケーションを作成しています。
対象は10.13
Xcode9にて作業しています。
言語はSwiftを利用しています。

現在、NSTableViewを利用して、表組みを組んでいます。
内容に関しては外部のファイルからデータを読み込んで、配列変数に代入、それをNSTableViewで表示させています。
表示やセルを選択した場合の処理、表組み内のドラッグ&ドロップの処理くらいはできるのですが、ドラッグ&ドロップでセルを移動した場合、配列変数の内容の順番が入れ替わっているわけではないので、
NSTableViewの内容を取り出すことができればと思い質問させていただきました。

よろしくお願いします。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • fuzzball

    2018/05/18 16:02

    NSTableViewの内容は元々配列のデータなので、配列から取得すればいいと思うのですが。

    キャンセル

  • icegreen

    2018/05/18 16:04

    ドラッグした後、配列の内容とNSTableViewの内容の順番が違うので、うまく取得することができないのです。

    キャンセル

回答 1

checkベストアンサー

0

ドラッグ&ドロップでセルを移動した場合、配列変数の内容の順番が入れ替わっているわけではないので、

おそらくここが間違っています。
セルの並べ替え(追加や削除も同じ)をするときは、まず配列変数を変更して、それをテーブルに反映させます。

 配列要素の入れ替え

配列用のswapがありました。
swapAt(_:_:)

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/05/18 16:14

    なるほど、ありがとうございます。
    ちなみに、配列変数の内容を変更、もしくは移動はどのようにするものなのでしょうか?

    キャンセル

  • 2018/05/18 16:19

    ひとまず配列の話は置いておいて、変数aと変数bの値を入れ替える方法を知ってますか?

    キャンセル

  • 2018/05/18 16:21

    swapのことでしょうか。
    一応、その辺も調べることはしていました。

    キャンセル

  • 2018/05/18 16:23

    回答に追記しました。

    キャンセル

  • 2018/05/18 16:24

    あ、なるほど、イメージができました。
    ありがとうございます!

    キャンセル

  • 2018/05/18 16:27

    あー、よく考えたらD&Dってswapじゃないですね。
    単純に考えるなら「D&Dした要素を削除しつつ、新しい位置に挿入する」という処理になると思います。

    キャンセル

  • 2018/05/18 16:32

    んー、そう言われるとちょっとわからなくなります…
    すみません。

    キャンセル

  • 2018/05/18 16:52

    そこは仕様の問題なので、icegreenさんの思っているものが正解になります。
    単に私が「swapじゃない」と思っただけですので。
    ま、とりあえず作ってみて下さい。

    キャンセル

  • 2018/05/19 14:37

    ありがとうございます、結局別の配列変数を新たに作成し、オリジナルの変数に上書きする方法をとり、うまくいきました。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.61%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    HTMLのForm type="file"につきまして

    HTMLのForm type="file"につきまして、 クライアントより投稿された画像データを受け渡すプログラムを書いております。 通常上記のtype="file"属性を使用す

  • 解決済

    Navigation ControllerでEditボタン

    (2)のポイントで右上にEditボタンを表示したいのですが、Object LibraryからBar Button Itemをドラッグ&ドロップしても左下に配置されてしまい、右上にE

  • 解決済

    初期シーンについて

    現在作業中のシーンがシーンビューに表示され、 その状態で再生すると作業中のシーンがデバッグできることが分かります。 そこで質問ですが、 複数シーンが存在する場合に初期シー

  • 解決済

    アイコンへのドラッグ&ドロップをバッチコマンドで実現したい

    文字列置換のプログラムがあります。 このプログラムのショートカットアイコンをデスクトップに作成すると、 そのショートカットアイコンに、ファイルをドラッグ&ドロップすると、 フ

  • 解決済

    htdocsディレクトリ以下のファイルを移動

    MAMPをリインストールする為にhtdocsディレクトリ以下に保存したファイル、フォルダを移動したいのですが、ドラッグ&ドロップで移動させようとすると全てエイリアス(ショートカット

  • 解決済

    Xamarinがフォームデザイナを搭載するという情報はありますか?

    マルチプラットフォームのXamarinを扱ってみたいと前々から考えているのですが、C#でいうフォームデザイナが無いことから躊躇しています。 今後、Xamarinがフォームデザ

  • 解決済

    Animatorを参照できない。

    前提・実現したいこと フィールドにAnimatorを参照するコードを書いたのですが、インスペクターで参照設定ができません。 ご教授のほどよろしくお願いします。 publi

  • 解決済

    画面上に値を表示させたいのだがNullReferenceExceptionになる

    前提・実現したいこと 趣味でUnity2Dの勉強をしている初心者です。 スコアを画面に表示させたいのですが、できません。 画面にスコアを表示させるため、ヒエラルキー上で右ク

同じタグがついた質問を見る

  • Swift

    7068questions

    Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

  • Xcode

    4007questions

    Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

  • MacOS(OSX)

    1850questions

    MacOSとは、Appleの開発していたGUI(グラフィカルユーザーインターフェース)を採用したオペレーションシステム(OS)です。Macintoshと共に、市場に出てGUIの普及に大きく貢献しました。