Cocoa是苹果公司为Mac OS X所创建的原生面向对象的API,是Mac OS X上五大API之一(其它四个是Carbon、POSIX、X11和Java)。Cocoa 应用程序一般在苹果公司的开发工具Xcode(前身为Project Builder)和Interface Builder上用Objective-C写成。不过,通过Java bridge、PasCocoa、PyObjC、CamelBones以及RubyCocoa等桥接技术,Java、Clozure CL、LispWorks、Object P
我有一个基于NSDocument的应用程序,可以保存到多种文件类型,因此在保存文档时,NSDocument有助于将一个弹出按钮添加到保存面板作为其附件视图,让用户选择他们想要保存的类型.尼斯. 现在,我有另一个视图,我想要包含在保存面板中,但如果我只是覆盖 – [NSDocument prepareSavePanel:]并使用-setAccessoryView:来插入我自己的视图,它会替换文件类型
Objective-C noob在这里. 为什么这样: NSString *myString = [NSString alloc]; [myString initWithFormat:@"%f", storedNumber]; 导致以下异常 – 仅为抽象类定义的长度.定义 – [NSPlaceholderString length]! 当这工作正常: NSString * myString = [
我有一个充满文本字段和按钮的窗口,我想以特定的方式设置其关键视图顺序. 因此,我将initialFirstResponder设置为第一个文本字段,并为每个控件正确设置nextKeyView. 这在运行应用程序时没有任何效果.当我使用Tab键更改键字段或按钮时,它跳转的方式与我设置的顺序不同 – 似乎nextKeyView无效. 我在另一个示例应用程序中测试了它,它工作得很好,但在这个应用程序中它不
我是新手在Mac上进行开发,我希望实现一个类似于Spotlight的界面 – 主要部分似乎是一个扩展的表格/网格视图. 我想知道Apple是否提供了用于创建类似内容的组件,或者是否可以在其他地方使用开源. 当然,如果不是我会尝试自己解决一些事情,但总是值得检查! 感谢您的帮助. 新答案(2015年12月) 这些天我会使用垂直堆栈视图(NSStackView). 您可以使用其隐藏优先级来保证您显示的
我想在我的.m文件中定义一个常量.我可以在这里看到两个选项: static NSString *const kMyLabel = @"myLabel"; #define kMyLabel @"myLabel" 哪一个是最好的?这里使用静态有什么问题吗? 唯一的区别是你可以获取变量的地址,而你不能获取常量字符串表达式的地址(这是宏减少的地址).我希望尽可能避免使用#defines,所以我会选择前者
我正在使用 Cocoa OpenGL为MacOS构建一个小游戏来创建GUI.游戏是一个BoulderDash-Clone,所以它基本上是一个2D数组的对象,而不是那么多(一个级别就像4​​0个对象宽,25个对象高).很多对象都是动画的,所以我必须在绘制时动态获取纹理(我正在使用NSTimer来不断地重绘动画场景).这似乎会导致严重的性能问题. 我第一次做到了 for(y1, ..., yn) fo
在我的应用程序中,我需要知道我的应用程序运行时的扩展坞大小(我不想修改扩展坞,只知道它的大小). 这是我到现在才发现的: >没有与dock进行交互的直接方式 >使用com.apple.dock.plist,我可以知道tileize以及持久性应用程序和持久性其他应用程序的数量,因此我“可以”计算停靠点大小,但仅限于持久性元素.我想要的是我要求它的码头大小,并且可能有其他已启动的应用程序未在plist
通常,当您创建NSOperation子类时,您负责在-main方法中创建和释放NSAutoreleasePool. 使用NSBlockOperation时,是否需要在块中创建自动释放池? No.GCD(NSOperationQueue构建于OS X 10.6或iOS 4.2之上)为您管理自动释放池,与NSRunLoop相同.
我正在尝试使用ASIHTTPRequest下载一个文件队列.每个请求都会永久失败.我知道网址是有效的,我已将它们追踪出来并将它们弹出到浏览器中,文件就在那里.我对如何调试这个没什么想法. -(void) getRemoteFiles:(NSMutableArray *) M { [self createFileToAppDirectory]; if (!networkqueue)
我的应用程序使用 XML将用户数据保存到文件中.我刚刚收到了来自用户的2份报告,他们在文件中看到了完全意外的数据.而不是XML,它看起来像这样: ({"windows":[{"tabs":[{"entries":[{"url":"https://mail.google.com/a/cast... 还有一些来自文件中间的内容,重量接近30KB: {\"n\":\"bc\",\"a\":[null]}
从串口读取时,我无法使用Grand Central Dispatch Source事件. 我将dispatch_source_create与DISPATCH_SOURCE_TYPE_READ一起使用,以便当从与串行端口关联的fileDescriptor中读取数据时,操作系统将运行我的代码块.这是我的代码 - (void) receiveThread { globalQueue = disp
我在我的 Cocoa项目中添加了一个自定义的NSWindowController子类,并将我的子类的一个实例添加到我的应用程序的nib中.我希望在加载nib时看到我对-initWithCoder:方法的覆盖,但事实并非如此.为了调试,我添加了一个常规的-init方法并在其上设置断点 – 当然,我在加载nib时点击了断点. 这实际上可以让一些事情变得更简单(例如设置windowNibName),但我
我需要一种方法来获取OS X上的完整硬盘驱动器信息,这意味着所有硬盘型号名称,SATA / ATA控制器,卷,磁盘标识符等.我检查了diskutil,但它不包含SATA控制器信息,system_profiler有我需要的所有信息,但它的 XML输出不一定像我想的那样组织.是否有任何低级别的Carbon / C API可以让我这样做? 查看 IOKit. StackOverflow上还有 this
我正在下载并安装必须同时运行多次的应用程序.但是,这样做是否明智?我的应用程序使用/ tmp目录来保存临时下载.应用程序的每个实例都需要自己的停靠图标,这就是我使用多个实例的原因. 让同一个应用程序的多个实例同时运行是危险的吗?为什么或者为什么不?谢谢. 不,我不能使用Installer.app.是的,这是关于Mac的! 只要你不修改相同的资源(没有预防措施)你就没事了. 您可以通过终端轻松启动(
多年前,我想编写Mac软件并拥有 Java WebObjects的丰富经验,我尝试了java桥,但决定咬紧牙关并学习Objective-C(幸运的是,因为我讨厌让我的软件在桥上弃用).后来我骗了 RubyCocoa.我学习了 Ruby(确实发现它很有趣),但发现桥很难成熟或稳定,最后我结束了将代码移植回Objective-C. 多年过去了,我想知道是否值得花一些时间与MacRuby,甚至学习Pyt
在以前的OS X版本(10.6之前版本)中,可以通过applescript(“Applescript Studio”)中的“call method”命令调用 Cocoa方法. 例如.这条路: 将URL设置为“http://www.apple.com” 将URLWithString设置为(带参数30的URL的调用方法“stringByAddingPercentEscapesUsingEncoding
从位图图像开始.. 在可可我不知道有什么简单的方法吗? (比如“CAShapeLayer for images!”)? 简单的方法(如果你的目标是电话肯定值得考虑)是使用网格变形:变形正方形/三角形网格,纹理将图片映射到它上面.使用OpenGL ES可以轻松实现硬件加速.几何图形可以根据需要精细网格化,但纹理采样质量有限可能是一个问题,具体取决于您的应用程序.
我是Mac编程的新手,使用所有标准方法我在窗口控制器中放置了一个自定义视图.当我尝试通过鼠标调整窗口大小时,内部内容即自定义视图不会调整大小. 谁能告诉我我的代码中缺少什么?到目前为止,我做了以下事情: >在中设置AutoResize子视图 窗内的所有视图 >将AutoResizeMask设置为宽度和 高度 当我在参考代码中使用NSLog检查调整大小时,我开始知道我的代码DrawRect没有调用视
我目前正在开发一些类似的 Cocoa桌面应用程序.为了在它们之间共享代码,我已经确定了一组核心类和函数,这些类和函数可以在所有这些应用程序中共用.我想将这个公共代码捆绑到一个框架中,我所有当前的应用程序(以及任何未来的应用程序)都可以链接到该框架. 现在,这是困难的部分:我将继续开发这个框架,所以我需要每个桌面应用程序都有它的引用,但我希望能够从每个内部编辑框架源代码.应用程序项目并根据需要自动重
我只是在Objective C和 Cocoa中学习一些基本的编程.我正在尝试从NSTableView获取一些数据.根据我在一个教程中读到的内容,我写了这个: NSArray * items = [[itemsTableView selectedRowEnumerator] allObjects]; 但后来我才知道在10.3 Panther中已经弃用了selectedRowEnumerator,我应
为什么默认的iPhone界面元素,特别是UISwitch(未修改)和UISegmentedControl会出现轻微模糊?我没有更改它们或调用任何私有API.当我在模拟器中运行它并将其加载到我的iPod Touch上时,会发生这种模糊,因此我认为这不是一次性的故障.这些元素是通过一些代码(initWithFrame :)而不是在界面构建器中创建的.以下是模拟器中模糊的屏幕截图: http://drp
我正在创建一个Web浏览器类型的应用程序(使用Web视图对象),需要能够通过代理连接到Internet.服务器,端口,用户名和密码都可以硬编码到应用程序中,但遗憾的是我不知道如何在不更改系统范围代理设置的情况下自定义Web视图的代理设置. 如果您知道如何操作,请提供一些示例代码,非常感谢! (另外,如果它改变了什么 – 我正在开发mac,而不是iPhone) 我知道最简单的方法是连接 UIWebV
我有一个自定义的NSTableView子类填充了几个自定义NSTextFieldCell子类.我希望能够使用箭头键更改编辑的单元格. 我能够通过创建自定义字段编辑器(通过子类化NSTextView)并从窗口委托中返回它来完成此操作,如下所示: - (id) windowWillReturnFieldEditor:(NSWindow *) aWindow toObject:(id) anObject