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

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

新規登録して質問してみよう
ただいま回答率
85.48%
Cocoa

CocoaはMac OS X用のアプリケーションを構築する為の主要なフレームワークのひとつです。

Xcode

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

Swift

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

Q&A

解決済

2回答

1695閲覧

NSSegmentedControlの値を関数で制御したい

resuporu

総合スコア6

Cocoa

CocoaはMac OS X用のアプリケーションを構築する為の主要なフレームワークのひとつです。

Xcode

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

Swift

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

0グッド

0クリップ

投稿2018/08/14 12:31

編集2018/08/14 17:46

<現状>
swift初めて1ヶ月です.macで使う印象評価実験のアプリを作っています.
Developer Documentationを参考にNSSegmentedControlのページからsetSelected(_:forSegment:)でできそうだと考えましたが,なかなかうまくいきません.

###書いているコード

swift

1import Cocoa 2class ViewController: NSViewController { 3 4//操作したいSegmented Control 5 @IBAction func OneBar(_ sender: NSSegmentedControl) { 6 //hogehoge 7 } 8//このボタンを押した時Segmented Controlの選択されている値を設定したい 9 @IBAction func OneBar(_ sender: NSSegmentedControl) { 10 changeBarValue() 11 } 12 13 func changeBarValue(){ 14 OneBar.setSelected(_, selected: true, forSegment: 1)//エラーが出るコード 15 16 OneBar.setSelected(_, selected: true, Segment: 1) //←試しにこのように書いても同じエラーが出ます 17 } 18 19 20}

該当するコードで
Value of type '(NSSegmentedControl) -> ()' has no member 'setSelected'
というエラーが出ています.
ちなみにDeveloper Documentationには,

func setSelected(_ selected: Bool, forSegment segment: Int)

と書いてあり,これ通りに書くと,
Expected ',' separator と
Use of unresolved identifier 'forSegment'
のエラーが出てきます.(公式documentationが最新のswiftに対応していないから?)

<環境>
macOS : High Sierra
Xcode : 9.4.1
swift : 4.1.2
よろしくお願いします.

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

OneBarはNSSegmentedControlではなく関数です。

投稿2018/08/15 00:11

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

自己解決

一つのオブジェクトに対してプロパティの宣言かメソッドの宣言のどちらかしかできないものだと思っていました.
Segmented Controlに@IBOutlet~ を接続し,これを関数に代入することで解決しました.

swift

1 @IBOutlet weak var onebarValue: NSSegmentedControl! 2 3 func setValue(sender:NSSegmentedControl,Barvalut:Int){ 4 sender.setSelected(false, forSegment:Barvalue) 5 } 6 7 @IBAction func pushReturn(_ sender: NSButtonCell) { 8 setValue(sender: onebarValue, evaluationColumn: ) 9 } 10

投稿2018/08/15 12:26

resuporu

総合スコア6

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問