모처럼 도착한 Touch Bar의 사용법이 떠오르지 않았기 때문에 PPAP로 샘플을 만들었다

12594 단어 MacOSXSwiftSwift3.0

즉, 무엇을 했습니까?



MacBook Pro에 탑재된 TouchBar를 심플하게 사용한 샘플을 만들었다.

MacBookPro가 도착했는데 TouchBar의 사용법이 떠오르지 않았기 때문에 TouchBar에서 PPAP 앱을 만들었다 htps // t. 코 / gKL 사쿠 v w @YouTube


개요



Cocoa의 새로운 프로젝트 만들기
TouchBar를 사용하기 위한 설정을 AppDeligate.Swift로 설정
StoryBoard에 TouchBar 배치
WindowController 클래스 만들기
TouchBar의 Action을 데리러
소리를 낼 수 있는 함수 준비
PPAP를 세분화하여 저장
PPAP하고 즐기는

환경


  • MacBook Pro (13-inch, Late 2016, Four Thunderbolt 3 Ports)
  • macOS Sierra 10.12.1 (16B2657) ← 이 버전 중요 (2016/11/21)
  • Xcode Version 8.1 (8b62)

  • 참고



    2016년 11월 20일
    htps : //로 ゔぇぺぺr. 아 ぇ. 코 m / 레후 렌세 / 아 p t / n s 토 ch 바 r
    htps : //로 ゔぇぺぺr. 아 ぇ. 코 m / 레후 렌세 / 아 v 후 응다 치온 / 아 ぁ ぢ ぁ ぁ
    ↑이쪽은 시리즈로 참고로 했습니다.

    구현



    github : htp : //에서 v.ぁsss d. jp / s 마 rtp 호네 / 이 p 호네 / x 코데 - 8-1 - 토 ch_ 바 r 사 mp ぇ - 코데 파 rt-1 /
    ※ 음원은 포함되어 있지 않습니다

    Cocoa의 새로운 프로젝트 만들기



    XCode를 시작하여 "Create a New Xcode Project"
    macOS 탭을 선택하고 "Cocoa Application"
    좋아하는 이름을 붙인다. 만일 'PPAPBar'

    PPAPBar 프로젝트
    PPAPBar 디렉토리
       AppDeligate.swift
       ViewController.swift
       Assets.xcassets
       Main.storyboard
        info.plist
    Products 디렉토리
    같은 프로젝트가 일어날 것입니다.

    TouchBar를 사용하기 위한 설정을 AppDeligate.Swift로 설정



    TouchBar를 사용할 수 있는 환경에서만 실행할 수 있는 코드 추가
    func applicationDidFinishLaunching(_ aNotification: Notification) {
    안에 다음을 넣는다.

    AppDeligate.swift
    
    if NSClassFromString("NSTouchBar") != nil {
       NSApplication.shared().isAutomaticCustomizeTouchBarMenuItemEnabled = true
    }
    
    

    StoryBoard에 TouchBar 배치



    Main.storyboard로 이동
    Object Library에서 TouchBar나 그 Button을 선택해 WindowController에 배치했다.
    htps : // 기주 b. 코 m / 엔세키 t / 빠 Pba r

    WindowController 클래스 만들기



    무정하게 ViewController.swift 안에 WindowController를 준비했습니다.

    ViewController.swift
    
    class WindowController: NSWindowController, AVAudioPlayerDelegate {
    
    }
    
    

    이것을 WindowControllerScene의 WindowController의 CustomClass에 적용한다.

    TouchBar의 Action을 데리러



    이전의 WindowController 안에
    
        @IBAction func startAction(_ sender: NSButton){
            print("start")
            soundPlay(fileName: "start")
        }
    
    

    일으키고 싶은 액션의 수만 만들

    WindowController.class
    
        @IBAction func startAction(_ sender: NSButton){
            print("start")
            soundPlay(fileName: "start")
        }
    
        @IBAction func pen1Action(_ sender: NSButton){
            print("Pen")
            soundPlay(fileName: "pen1")
        }
    
    
        @IBAction func pineAplleAction(_ sender: NSButton){
            print("pineapple")
            soundPlay(fileName: "pineapple")
        }
    
        @IBAction func appleAction(_ sender: NSButton){
            print("apple")
            soundPlay(fileName: "apple")
        }
    
        @IBAction func pen2Action(_ sender: NSButton){
            print("pen")
            soundPlay(fileName: "pen2")
        }
    
        @IBAction func endAction(_ sender: NSButton){
            print("end")
            soundPlay(fileName: "end")
        }
    
    

    이번에는 PPAP용으로 6개 준비해 보았다.
    StoryBoard의 TouchBar 각 버튼에서 Ctrl+드래그로 각 작업에 연결


    소리를 낼 수 있는 함수 준비



    지금 그대로라면 soundPlay가 경고를 발하는 것이므로 소리를 울리는 함수를 WindowController에 준비했다

    ViewController.swift
    import AVFoundation
    

    소리를 내기 위해 AVFoundation을 가져와 다음 함수와 변수를 추가합니다.

    WindowController.Class
        var audioPlayer:AVAudioPlayer!
    
        func soundPlay(fileName: String) {
            // 再生する audio ファイルのパスを取得
            let audioPath = Bundle.main.path(forResource: fileName, ofType: "mp3")!
            let audioUrl = URL(fileURLWithPath: audioPath)
            print(audioUrl)
    
    
            // auido を再生するプレイヤーを作成する
            var audioError:NSError?
            do {
                audioPlayer = try AVAudioPlayer(contentsOf: audioUrl)
            } catch let error as NSError {
                audioError = error
                audioPlayer = nil
            }
    
            // エラーが起きたとき
            if let error = audioError {
                print("Error \(error.localizedDescription)")
            }
    
            audioPlayer.delegate = self
            audioPlayer.prepareToPlay()
            audioPlayer.play()
        }
    

    PPAP를 세분화하여 저장



    Audacity 등을 사용하여 PPAP의 음원을 세분화
    start.mp3
    pen1.mp3
    pineapple.mp3
    apple.mp3
    pen2.mp3
    end.mp3
    

    의 6 음원을 준비한다.
    (내용은 뭐든지 좋기 때문에 마음의 약점으로부터 시사 재료에 뛰어들었다)
    이것을 PPAP 디렉토리 바로 아래의 ViewController.swift와 같은 레벨로 전부 던진다.

    PPAP하고 즐기는





    TouchBar의 감상



    굉장히 감촉이 좋다
    뜻밖의 반응이 좋다
    Apple의 앱이라면 Trackpad의 이용 빈도가 상당히 떨어지는 레벨에 편리한 기능이 있다
    터미널 때만 Function 키 설정 등을 할 수 있는 것이 좋았다
    (사 버린 이상 칭찬 밖에 없다)

    앞으로



    네이티브 앱에도 익숙해지고 싶다.

    좋은 웹페이지 즐겨찾기