小编ind*_*gie的帖子

隐藏NSWindow标题栏

有没有办法隐藏NSWindow中的标题栏?我不想完全写一个新的自定义窗口.我不能使用NSBorderlessWindowMask,因为我的窗口上有一个底栏,使用NSBorderlessWindowMask使它消失.我也尝试使用setContentBorderThickness:forEdge:使用NSMaxYEdge并将其设置为0,这也不起作用.

任何帮助表示赞赏

cocoa objective-c nswindow

17
推荐指数
4
解决办法
2万
查看次数

除非编辑,否则不会显示NSTextField占位符文本

我在Interface Builder中设置了我的NSTextField的占位符文本,但是在我在文本字段内单击以编辑它之前,占位符文本不会显示.还有谁有相同的问题吗?

谢谢

编辑:截图.当我不编辑它时,这是该字段的样子:

不编辑http://cl.ly/2a0R1h1p2A082g1t1b3q/Screen_Shot_2011-04-01_at_6.51.25_PM.png

这就是我编辑时的样子:

编辑http://cl.ly/1c2d1U233R3j3k0M2E2Q/Screen_Shot_2011-04-01_at_6.51.32_PM.png

macos cocoa objective-c nstextfield appkit

16
推荐指数
2
解决办法
1万
查看次数

UINavigationItem titleView位置

我正在使用UINavigationItem的titleView属性来设置我想要的字体大小/颜色的自定义UILabel.这是我的代码:

self.headerLabel = [[UILabel alloc] initWithFrame:CGRectMake(0.0, 0.0, 400.0, 44.0)];
self.headerLabel.textAlignment = UITextAlignmentCenter;
self.headerLabel.backgroundColor = [UIColor clearColor];
self.headerLabel.font = [UIFont boldSystemFontOfSize:20.0];
self.headerLabel.textColor = [UIColor colorWithRed:0.259 green:0.280 blue:0.312 alpha:1.0];
self.navigationItem.titleView = self.headerLabel;
Run Code Online (Sandbox Code Playgroud)

在导航栏中,我还有一个左栏按钮.结果是这样的:

alt text http://cl.ly/41164eec656c96e7c913/content

如您所见,文本未正确居中.我已经尝试设置标签的x原点,但这没有效果.

iphone cocoa-touch objective-c uinavigationitem ipad

15
推荐指数
2
解决办法
3万
查看次数

核心数据云同步 - 需要逻辑帮助

我正在为我目前正在开发的Core Data应用程序集思广益的云同步解决方案.我计划在完成后为这个代码开源代码,任何人都可以使用他们的核心数据应用程序,所以社区对这个系统应该如何工作的意见非常感谢:-)这就是我在想的:

服务器端


存储提供商

与所有云同步系统一样,存储是这个难题的主要部分.有很多方法可以解决这个问题.我可以设置我自己的服务器进行存储,或者使用像Amazon S3这样的服务,但由于我现在开始使用0美元资金,此时付费存储解决方案不是一个可行的选择.经过一番思考后,我决定选择Dropbox(一个已经很成熟的云同步应用程序和存储提供商).使用Dropbox的优点是:

  • 它是免费的(对于有限的空间)
  • 除了作为存储服务,它还处理云同步
  • 他们最近发布了一个Objective-C SDK,它可以更容易地在Mac和iPhone应用程序中与它进行交互

如果我决定将来切换到不同的存储提供商,我打算在这个云同步框架中添加"服务",基本上允许任何人创建一个服务类来与他们选择的存储提供商进行交互,然后可以简单地插入框架.

存储结构

这是一个非常困难的部分,因此我需要尽可能多的输入.我一直在考虑这样的结构:

CloudSyncFramework
======> [app name]
==========> devices
=============> (device id)
================> deviceinfo
================> changeset
==========> entities
=============> (entity name)
================> (object id)
Run Code Online (Sandbox Code Playgroud)

这个结构的快速解释:

  • 主"CloudSyncFramework"(名称未定)文件夹将包含使用该框架的每个应用程序的单独文件夹
  • 每个app文件夹都包含一个devices文件夹和一个实体文件夹
  • 所述设备的文件夹将包含每个与该帐户注册设备的文件夹.设备文件夹将根据设备ID命名,使用类似[[UIDevice currentDevice] uniqueIdentifier](在iOS上)或序列号(在Mac OS上)获得.
  • 每个设备文件夹包含两个文件:deviceinfochangeset.deviceinfo包含有关设备的信息(例如操作系统版本,上次同步日期,型号等),变更集文件包含自设备上次同步以来已更改的对象的信息.这两个文件都只是简单的NSDictionaries归档到文件中使用NSKeyedArchiver.
  • 每个Core Data实体在entities文件夹下都有一个子文件夹
  • 在每个实体文件夹下,属于该实体的每个对象都将具有单独的文件.该文件将包含带有键值对的JSON字典.

同步同步

这是我几乎完全无能为力的领域之一.我如何处理同时连接和同步云的2台设备?事情似乎很有可能在这里失去同步,甚至数据损坏.

处理迁移

再次,这里另一个无能为力的地区.我如何处理Core Data托管对象模型的迁移?这里最简单的做法似乎就是清理云数据存储并从已经过迁移过程的设备上传数据的新副本,但这似乎有些冒险,并且可能有更好的方法.

客户端


将NSManagedObjects转换为JSON

将属性转换为JSON并不是一项非常艰巨的任务(它有很多代码可以在Web上浮动).关系是这里的关键问题.在这个 …

cloud macos synchronization core-data ios

14
推荐指数
1
解决办法
5512
查看次数

运行相同XPC服务的多个实例(NSXPCConnection)

是否可以使用Foundation.framework(NSXPCConnection等)中的XPC API运行同一XPC服务的多个实例?这些文档没有提供太多关于此事的见解.

编辑:做了一个快速测试,似乎只有一个服务实例正在运行,即使我创建了两个XPC连接.有没有办法让它运行另一个实例?

cocoa xpc objective-c nsxpcconnection

13
推荐指数
2
解决办法
2828
查看次数

Mac App Store和插件

我在Mac App Store指南中看到了这一点:

2.16:下载或安装其他代码或资源以添加功能或更改其主要用途的应用程序将被拒绝

这是否意味着使用插件的应用程序会被拒绝?我做了一些研究并且无法想出任何东西,但是像App Store上的Opera这样的应用程序支持扩展,所以我认为它是允许的(在某种程度上)或内部交易正在进行中.该子句似乎特别适用于应用程序本身下载和安装的代码,而不是用户安装的第三方插件.

有没有人在商店里有插件支持的应用程序?或者有人可以澄清这个条款吗?

谢谢

macos cocoa app-store mac-app-store

10
推荐指数
1
解决办法
1679
查看次数

核心数据 - NSPredicate可过滤多对多关系

我有2个实体,任务和列表.每个任务与一个名为"list"的List对象具有一对一的关系,并且与List有一个反向关系,它与Task有一个to-many关系,称为"tasks".

我正在尝试使用带有NSPredicate的获取请求来获取属于指定List的所有Task对象:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"list=%@", theList];
[fetchRequest setPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)

(其中"theParent"是对List对象的引用).但是,这不会返回任何提取的对象.如果我取出谓词,那么返回对象(所以我知道它们存在,并且通过NSLogging theList我知道它有与之关联的Task对象).

谢谢

iphone cocoa-touch core-data nspredicate nsfetchrequest

9
推荐指数
1
解决办法
4691
查看次数

UITableViewCell - 在重新排列控件旁边显示附件视图

在iPhone上的Safari书签管理器中,UITableView似乎有一些不标准的行为.我是指这个:

alt text http://cl.ly/b7f0faead6a8586d3470/content

在编辑模式下,书签UITableViewCells具有重新排列控件和UITableViewCellAccessoryDisclosureIndicator旁边的附件视图.你怎么两个都得到?在我的表格视图中,当您进入编辑模式以显示重新排列控件时,控件将取代附件视图,而不会同时显示两者.

iphone cocoa-touch objective-c uitableview ipad

9
推荐指数
1
解决办法
2434
查看次数

NSTask和Git - 权限问题

在我的Cocoa应用程序中,我正试图NSTask运行一些基本的Git命令.每当我运行需要的权限(SSH密钥)来访问远程命令(例如git push,git pull)时,出现以下错误:

权限被拒绝(publickey).远程端意外挂断了

从终端运行相同的命令工作正常,所以我认为这可能是一个问题,NSTask因为没有设置在访问ssh密钥的过程中某处使用的环境变量.我尝试手动设置HOMEUSER环境变量,如下所示:

[task setEnvironment:[NSDictionary dictionaryWithObjectsAndKeys:NSHomeDirectory(), @"HOME", NSUserName(), @"USER", nil]];
Run Code Online (Sandbox Code Playgroud)

但这没有效果.我必须设置任何特定的环境变量NSTask才能正常工作吗?

编辑:感谢达斯汀的提示,我进一步了解了这一点.我用env命令列出了当前会话的环境变量,我发现了这个:

SSH_AUTH_SOCK=/tmp/launch-DMQopt/Listeners
Run Code Online (Sandbox Code Playgroud)

为了测试,我复制了该路径并将其设置为环境变量NSTask并再次运行代码,这次它起作用了!也就是说,我确定SSH_AUTH_SOCK每个会话都有变化,所以我不能只对它进行硬编码.如何动态生成/检索此变量?

git cocoa objective-c environment-variables nstask

9
推荐指数
1
解决办法
1412
查看次数

使用Core Animation进行错误的文本渲染

首先,我知道这个话题已经提出过好几次,但是我发布了这个问题,因为我过去使用过的"解决方案"都没有在这个具体案例中发挥过作用.我正在绘制一些CALayer由我的NSToolbar中的视图托管的文本.这是文本的样子:

字体平滑

我尝试使用 StackOverflow帖子中的建议,即CGContextSetShouldSmoothFonts(ctx, false)在绘制到上下文之前调用关闭子像素抗锯齿.这是一个过去给我可接受的结果的解决方案,但在这种情况下,它似乎使文本看起来更糟糕:

字体平滑

该帖中提到的另一个解决方案是在绘制之前用不透明的背景颜色填充矩形,在这种情况下这是不可能的,因为工具栏背景是渐变.有什么我可以做的,使这个文本看起来像绘制到平原的文本一样NSView好吗?

cocoa core-animation objective-c calayer nsview

9
推荐指数
2
解决办法
1917
查看次数