COCOA® PROGRAMMING FOR MAC® OS X (2)- Speak Line
1、NSControl是所有控件的父类,NSControl继承自NSView,因此NSControl是一个能够独立响应事件的NSView,每个NSControl含有一个Target和Action,当用户与控件交互的时候会发送Action消息。
这里有一点不明白,IOS中的控件的事件大多都过回调对应协议的方法告知调用方,而NSControl只有一个Action,对于一个Button可以理解,对于一个Table来说应该怎么去响应呢?
2、实现SpeakLine demo
效果图:
新建一个空得工程,工程中自动建立好了一个Window
新建一个ViewController,将ViewController.view 添加到Window的ContentView上面
代码如下:
AppDelegate:
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification { // [self.window setBackgroundColor:[NSColor redColor]]; _spVC = [[SPViewController alloc] initWithNibName:@"SPViewController" bundle:nil];
_spVC.view.frame = NSMakeRect(0, 0, self.window.frame.size.width, self.window.frame.size.height);
_spVC.view.autoresizingMask = NSViewWidthSizable|NSViewHeightSizable;
[self.window.contentView addSubview:_spVC.view];
self.window.title = @"Speak Line"; }
VC对应的代码:
#import "SPViewController.h" @interface SPViewController () @property (weak) IBOutlet NSTextField *speakTextField; @property (nonatomic, strong) NSSpeechSynthesizer *speechSynth; @end @implementation SPViewController - (void)viewDidLoad {
[super viewDidLoad];
// Do view setup here.
_speechSynth = [[NSSpeechSynthesizer alloc] init];
} - (IBAction)stop:(id)sender {
[_speechSynth stopSpeaking];
} - (IBAction)speak:(id)sender { if(_speakTextField.stringValue.length > 0)
{
[_speechSynth startSpeakingString:_speakTextField.stringValue];
} } @end
代码地址:http://pan.baidu.com/s/1ntpAR37
COCOA® PROGRAMMING FOR MAC® OS X (2)- Speak Line的更多相关文章
- COCOA® PROGRAMMING FOR MAC® OS X (1)- Get Start
这个是Mac OS App开发学习的第一篇,希望是一个好的开始. 一.为什么要学习Mac OS App开发 a)长时间做IOS开发,发现自己所做的局限在苹果的一些库上面,一些底层的API却是私有的,不 ...
- VMWare14 安装Mac OS系统(图解)
★ 背景 瞅了瞅自己干瘪的钱包,没忍心入手期待已久的 macPro,只好在虚拟机里玩一下 mac好了,等以后钱包傲气的时候再来个真实的. 安装环境: windows10 VMWare14.2 一.准备 ...
- 修改mac os分辨率(VMware)
转自:http://hi.baidu.com/hehonglei123/item/55591c17e7991d582a3e22a1 1. 在Mac系统中安装VMsvga2:VMsvga2_v1.2.3 ...
- [深入浅出Cocoa]详解键值观察(KVO)及其实现机理
一,前言 Objective-C 中的键(key)-值(value)观察(KVO)并不是什么新鲜事物,它来源于设计模式中的观察者模式,其基本思想就是: 一个目标对象管理所有依赖于它的观察者对象,并在它 ...
- 国内操作系统OS分析(上)
国内操作系统OS分析(上) 一.操作系统(OS)概述 操作系统(OS,Operating System),是管理.控制计算机软硬件资源的计算机程序,并为用户提供一个与系统交互的操作界面.OS是配置在计 ...
- Mac下利用(xcode)安装git
Mac下利用(xcode)安装git 一.AppStore 最安全途径:搜索下载Xcode,(需要AppleID). 其他:直接百度Xcode下载. 二.Xcode 打开Xcode-->Pref ...
- 《Programming Hive》读书笔记(一)Hadoop和hive环境搭建
<Programming Hive>读书笔记(一)Hadoop和Hive环境搭建 先把主要的技术和工具学好,才干更高效地思考和工作. Chapter 1.Int ...
- 《Programming Hive》读书笔记(两)Hive基础知识
<Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...
- Parallel Programming for FPGAs 学习笔记(1)
Parallel Programming for FPGAs 学习笔记(1)
随机推荐
- ios在项目中打开word文档、ppt等总结
最近在项目开发中遇到下载附件文档预览需求,在这里总结一下我的实现方法,本文最后会附带我写的demo下载地址 这里我总结了三种实现方法(1)用webView预览(2)通过UIDocumentIntera ...
- Java代理模式汇总
简介 代理模式即Proxy Pattern,23种java常用设计模式之一.其定义为:对其他对象提供一种代理以控制对这个对象的访问. UML类图 静态代理 目标接口 public interface ...
- Markdown引用本地图片语法
Markdown引用本地图片语法 markdown引用图片标准方式如下: ![Alt text](/path/to/img.jpg) 测试markdown文本如下: # 测试相对路径图片 ![Alt ...
- wvs_patcher批量测试网站
来自:http://zone.wooyun.org/content/23162 pip install multiprocessing错误. 然后就到官方下载安装包本地安装 multiprocessi ...
- 杭电OJ--自行车计速器
Biker's Trip Odometer Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Ot ...
- 如何在无法直接用VS启动代码时如何调试代码
1. 普通情况下对进程Attach就可以调试. 2. 但是在一些情况下直接attach并无法调试,例如安装程序installer, 这样使用如下的调试方法即可调试安装程序. System.Diagno ...
- C#+ArcEngine中com对象的释放问题
1.问题描述 最近在写C#下AE的开发,在循环获取数据并修改时碰到了两个问题"超出系统资源"和"超出打开游标最大数":在网上看了一些资料,发现都是说在循环中没有 ...
- javabean解决jsp中中文乱码问题
问题描述:useBean行为定义了Java Bean对象(Person类包括姓名[string],年龄[int]),使用html页面向JSP页面提交数据,JSP页面中使用Java Bean行为来处理提 ...
- springmvc获取jar中的静态资源与jar包中的资源互相引用问题
1.首先看jar中的文件位置 2.在web工程中引用该jar 并且在springmvc文件中配置路径 如果有多个路径可用逗号隔开 3.在web工程找jsp页面如何引用 这样就可以了 关于jar中的资源 ...
- WebStorm和IntelliJIEDA软件注册码网站(手动填写)
很多人都发现 http://idea.lanyus.com/ 不能激活了 很多帖子说的 http://15.idea.lanyus.com/ 之类都用不了了 选择 License server (20 ...