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的更多相关文章

  1. COCOA® PROGRAMMING FOR MAC® OS X (1)- Get Start

    这个是Mac OS App开发学习的第一篇,希望是一个好的开始. 一.为什么要学习Mac OS App开发 a)长时间做IOS开发,发现自己所做的局限在苹果的一些库上面,一些底层的API却是私有的,不 ...

  2. VMWare14 安装Mac OS系统(图解)

    ★ 背景 瞅了瞅自己干瘪的钱包,没忍心入手期待已久的 macPro,只好在虚拟机里玩一下 mac好了,等以后钱包傲气的时候再来个真实的. 安装环境: windows10 VMWare14.2 一.准备 ...

  3. 修改mac os分辨率(VMware)

    转自:http://hi.baidu.com/hehonglei123/item/55591c17e7991d582a3e22a1 1. 在Mac系统中安装VMsvga2:VMsvga2_v1.2.3 ...

  4. [深入浅出Cocoa]详解键值观察(KVO)及其实现机理

    一,前言 Objective-C 中的键(key)-值(value)观察(KVO)并不是什么新鲜事物,它来源于设计模式中的观察者模式,其基本思想就是: 一个目标对象管理所有依赖于它的观察者对象,并在它 ...

  5. 国内操作系统OS分析(上)

    国内操作系统OS分析(上) 一.操作系统(OS)概述 操作系统(OS,Operating System),是管理.控制计算机软硬件资源的计算机程序,并为用户提供一个与系统交互的操作界面.OS是配置在计 ...

  6. Mac下利用(xcode)安装git

    Mac下利用(xcode)安装git 一.AppStore 最安全途径:搜索下载Xcode,(需要AppleID). 其他:直接百度Xcode下载. 二.Xcode 打开Xcode-->Pref ...

  7. 《Programming Hive》读书笔记(一)Hadoop和hive环境搭建

    <Programming Hive>读书笔记(一)Hadoop和Hive环境搭建             先把主要的技术和工具学好,才干更高效地思考和工作.   Chapter 1.Int ...

  8. 《Programming Hive》读书笔记(两)Hive基础知识

    <Programming Hive>读书笔记(两)Hive基础知识 :第一遍读是浏览.建立知识索引,由于有些知识不一定能用到,知道就好.感兴趣的部分能够多研究. 以后用的时候再具体看.并结 ...

  9. Parallel Programming for FPGAs 学习笔记(1)

    Parallel Programming for FPGAs 学习笔记(1)

随机推荐

  1. android中edittext被键盘挡住问题

    最近开始新项目,做注册页时候由于ui布局问题,edittext被键盘挡住了. 在stackoverflow上找了一遍,有提到在对应activity中设置windowSoftInputMode, 例如: ...

  2. HTML学习总结(四)【canvas绘图、WebGL、SVG】

    一.Canvas canvas是HTML5中新增一个HTML5标签与操作canvas的javascript API,它可以实现在网页中完成动态的2D与3D图像技术.<canvas> 标记和 ...

  3. mybatis学习笔记一(入门)

    昨天看了一下mybatis,学习了一下有很多东西还不懂,但是想把一些知道的记录一下,如有错误请大家多多指点. mybatis它是apche的一个开源项目,它以前的没名字并不是叫mybatis而是叫ib ...

  4. myeclipse的一些优化设置

    注:本文内容复制于little_paper的博客,具体链接为http://little-paper.iteye.com/blog/1670745,感谢little_paper的分享,为便于能随时学习, ...

  5. openstack私有云布署实践【17 配置文件部份说明】

    Nova部份 cpu_allocation_ratio = 4.0 物理 CPU 超售比例,默认是 16 倍,超线程也算作一个物理 CPU,需要根据具体负载和物理 CPU 能力进行综合判断后确定具体的 ...

  6. Elasticsearch 5.0 _all field的简单认识

    前言:本文的目的是为后续磁盘空间利用优化做铺垫,主要知识点来源于官网 一._all 是什么 在Elasticsearch中,_all field维护这一个很大的字符串数组(text类型).这个字符串是 ...

  7. 利用css来让一个div在页面中垂直居中的方法

    一.如何让一个div在页面中垂直居中(请至少列出三种) 1.距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度的50%,最后将该DIV分别左移和上移,左移和上移的大小就 ...

  8. [Q]pdfFactory打印机内存不能为read的问题

    运行环境:xp系统,AutoCAD2007 1. 使用pdfFactory打印文本文件没有问题. 2. 使用CAD打印的时候出现问题,使用CAD自带的PLOT命令打印也出现相同的问题. 3. 使用相同 ...

  9. LeetCode 385. Mini Parse

    Given a nested list of integers represented as a string, implement a parser to deserialize it. Each ...

  10. springmvc+maven

    http://blog.csdn.net/zht666/article/details/8673609/