小编str*_*nge的帖子

如何在iphone模拟器上使用键盘输入?

我曾经能够在启动iPhone模拟器后用我真正的mac键盘输入.在使用大量文本进行测试时,使用屏幕上的模拟器键盘进行打字非常糟糕.

无论我做什么,我都无法让键盘在模拟器中输入.即使我将"模拟硬件键盘"打开,它也不会输入任何内容.有人可以告诉我我做错了什么吗?有没有办法再使用真正的键盘输入?

iphone xcode ios-simulator

136
推荐指数
6
解决办法
5万
查看次数

不推荐使用旋转方法,相当于'didRotateFromInterfaceOrientation'?

我正在尝试实现viewWillTransitionToSizeiOS 8中引入的新方法(所有其他旋转方法已被弃用).我想知道现在的等价物didRotateFromInterfaceOrientation是什么,因为我们需要执行许多清理任务,我无法看到我们可以指定的块,UIViewControllerTransitionCoordinator以便在"转换"为新的时调用大小完成.谢谢.

iphone objective-c ios ios8

133
推荐指数
5
解决办法
6万
查看次数

检查NSAnimationContext runAnimationGroup是否已取消或成功

我正在制作一个视图(通过揭示它),之后我需要发布一个通知(一旦动画完成).然而,应用程序的设计方式,隐藏视图(通过动画)时会发出另一个通知.基本上我有一个'showView'和'hideView'方法.每个人都这样做:

    [NSAnimationContext runAnimationGroup:^(NSAnimationContext *context) {
      [context setDuration: 0.25];

      [[myView animator] setAlphaValue: 0];
    } completionHandler:^{
       // post notification now
    }];
Run Code Online (Sandbox Code Playgroud)

问题是在后台的另一个线程中,我有一个定期计时器,它执行"健全性检查"以查看是否需要隐藏视图(如果不需要).这是一种积极的方法,但必要的是应用程序的许多组件响应不同的事件和场景.由于这个原因,我有时会得到一个'竞争条件',用户点击了'showView',但同时我们的一个线程感觉应该立即隐藏视图.

当两者都在主线程上发布通知时,应用程序会在SpinLock中无限期挂起.如果我能够弄清楚上面的动画块是否被"取消"(即在同一视图上执行的另一个动画块),我可以完全避免这种情况.在这种情况下,我不会发布通知,这将不会强制检查.

长话短说:我需要能够检查动画成功结束后是否调用'completionHandler',或者是否取消了.我知道在iOS中这是可能的,但我在OS X中找不到任何方法.请帮忙.

cocoa core-animation objective-c nsanimationcontext

8
推荐指数
1
解决办法
1174
查看次数

帮手mac app(登录项目),无法与之通信

我完全像Apple提供的Sandboxed Helper App示例一样,所有这些都运行良好.我能够成功创建一个NSXPCConnection对象,并且还可以恢复我的远程对象(通过remoteObjectProxyWithErrorHandler).

但是,当我在代理对象上调用一个方法(在协议定义中定义)时,我收到了这个错误:

Failed to connect to launch agent: Error Domain=NSCocoaErrorDomain Code=4099 "Couldn’t communicate with a helper application.
Run Code Online (Sandbox Code Playgroud)

基本上无论我做什么,我都无法与我的帮助应用程序通信.我没有做任何花哨的事情,只是试图简单地调用帮助应用程序到NSLog()的东西.但它不起作用.奇怪的是我也没有从里面看到任何输出:

- (BOOL)listener:(NSXPCListener *)listener shouldAcceptNewConnection:(NSXPCConnection *)newConnection
Run Code Online (Sandbox Code Playgroud)

我怎么可能做错了?

更新:显然如果我在我的主应用程序上取消选中"启用应用程序沙盒",它就可以了!所以在启用沙盒之后出现了问题,之后它不想与我的帮助应用程序通信.我需要更多的权利吗?我已经在xcode下尝试了所有这些!

macos xcode cocoa objective-c

6
推荐指数
1
解决办法
6183
查看次数

核心数据获得值的总和.提取属性与传播

我对Core Data相对较新(来自SQLite背景).刚读完"iOS的核心数据"一书,但当我开始为具有以下型号的应用程序建模时,我留下了一些令人困惑的问题:

  1. "帐户"实体,具有多对多的"交易"关系和"startingBalance"属性
  2. '交易'实体,具有多对多的"支付"关系(与账户相反)
  3. "付款"实体,其中包含实际"付款金额"的详细信息

出于性能原因,我想对模型进行去规范化,并在"帐户"实体中添加"TotalAmountSpent"属性(如本书所示),这样我就可以在发生变化时继续更新.

在实践中,这似乎很难通过Core Data实现.我无法弄清楚如何正确地做到这一点(并且不知道正确的方法是什么).所以我的问题是:

a)我应该将'TotalAmountSpent'更改为Fetched Property吗?是否有性能影响(我知道它是懒惰加载但我几乎肯定会为每个帐户获取该属性).如果我这样做,我需要能够在给定的时间段(例如最后三天)内获得花在'startingBalance'上的总金额.这在SQL中看起来很简单,但我如何在Core Data中执行此操作?我读过我可以使用@sum聚合函数但是如何使用@sum过滤'date'?我还读了数据中的任何变化都需要刷新fetched属性.我如何'倾听'改变?我是在"付款"实体的'willSave'方法中做到的吗?

b)每次将新的付款添加到交易时,我是否应该使用传播并手动更新"TotalAmountSpent"?最好的地方是什么?我应该在重写的NSManagedObject的'willSave'方法中做到吗?我担心,如果在帐户上更新了"startingBalance"字段,更新所有相应的交易/付款将是一场噩梦.然后我必须加载每笔付款并计算花费的总金额和帐户的最终余额.如果有数千笔付款可怕

任何关于此事的指导都将非常感激.谢谢!

iphone core-data objective-c fetched-property

5
推荐指数
1
解决办法
3415
查看次数

PHP如何解压Apple APNS反馈数据

我已成功设法连接到Apple的反馈APNS服务器,但我不知道如何解压缩从fread()获得的二进制数据.有谁知道如何做到这一点?文档说前4个字节是时间戳,接下来的2个是令牌长度,其余是设备令牌.

在调用fread之后,如何将这些信息解压缩为可读字符?

php feedback apple-push-notifications

4
推荐指数
1
解决办法
1939
查看次数

将sqlite3数据库与iPhone应用程序相关联

我正在尝试将SQLite3数据库文件与我们的应用程序相关联,以便从电子邮件中轻松打开备份数据库.然而,以下似乎不起作用,因为Mail仍然无法识别该文件(在iPad和iPhone 4上):

<key>UTExportedTypeDeclarations</key>
<array>
    <dict>
        <key>UTTypeConformsTo</key>
        <array>
            <string>public.database</string>
            <string>public.data</string>                    
        </array>
        <key>UTTypeDescription</key>
        <string>App Database File</string>
        <key>UTTypeIdentifier</key>
        <string>com.company.App.db</string>
        <key>UTTypeTagSpecification</key>
        <dict>
            <key>public.filename-extension</key>
            <string>db</string>
            <key>public.mime-type</key>
            <string>application/x-sqlite3</string>            
        </dict>
    </dict>
</array>

 <key>CFBundleDocumentTypes</key>
 <dict>
  <key>CFBundleTypeName</key>
  <string>App Database</string>
  <key>CFBundleTypeIconFiles</key>
  <array>
   <string>Icon-Small.png</string>
   <string>Icon.png</string>
  </array>
    <key>CFBundleTypeRole</key>
        <string>Editor</string>

  <key>LSItemContentTypes</key>
  <array>
   <string>com.company.App.db</string>
  </array>
  <key>LSHandlerRank</key>
  <string>Alternate</string>
 </dict>
</dict>
Run Code Online (Sandbox Code Playgroud)

知道我做错了什么吗?

iphone sdk ipad

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

切换文件夹时,Reeder Mac app动画列表如何?

最初我的印象是它在插入/删除新行时使用表格行向上/向下动画,但我怀疑它是否正在这样做,因为即使列表中包含数千个项目也是如此流畅(否则会花费很多删除/插入工作的时间).

我是否正确地假设它只是在屏幕底部附加一个新的新闻列表实例,缩小上面的一个而底部的那个扩展以填满空间?

更新:

请看这个我的意思的视频:http://dl.dropbox.com/u/4960327/ReederAnim.mov

cocoa core-animation objective-c appkit xcode4

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

如何从KeyChain获取代理主机的用户名?

我正在Mac上编写一个实用程序,需要自动确定代理信息.我已经设法获取代理主机和端口(来自自动代理配置文件),但是如何从此获取钥匙串的用户名?

我知道您可以使用SecKeychainAddInternetPassword来获取代理密码,但我也不知道用户名.有没有办法获取用户名和密码?

macos objective-c keychain xcode4

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