小编C. *_*ith的帖子

如何判断用户是否为我的应用关闭了手机数据?

虽然我的应用程序可以在没有任何互联网连接的情况下使用,但它可以与Web服务器交换数据(以显示一些用户统计信息).因此,我将该应用宣传为"无需互联网连接".一些用户随后关闭了我的应用程序的移动数据,这应该是完全正常的.但是当我的应用程序尝试交换数据时,这些用户会收到"关于[应用程序名称]关闭蜂窝数据"的警告.对话.

这对他们来说是一种烦恼,我想阻止这些对话并简单地跳过整个数据交换的事情.

Apple的可达性样本代码.

但是,虽然我关闭了整个设备的WiFi和应用程序的移动数据,但Reachability确认了一个积极的互联网连接.更具体地说,它报告

Reachability Flag Status: WR t------ networkStatusForFlags
Run Code Online (Sandbox Code Playgroud)

无论我是否激活了细胞数据.当然,当蜂窝数据关闭时,实际上没有互联网连接可用,因此数据交换失败.但无论如何,用户都会看到蜂窝数据对话框.

有没有办法检测iOS 7和iOS 8上的互联网连接是否可用,考虑到特定应用程序的蜂窝数据设置 - 所有这些都不会再次通过蜂窝数据对话框窃听用户?

我的应用程序目前没有任何设置面板,所以我想避免设置(第二个应用程序内)开关"不要使用手机数据".此外,我不想将数据交换限制为WiFi连接,因为每个会话只有2 KB的数据,这对大多数用户来说并不是一件大事.

cocoa-touch foundation ios

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

如何在启动Cocoa应用程序时确定按下的修饰键?

在我正在开发的应用程序中,数据库用于存储所有用户数据,通常位于库/应用程序支持中的某个位置.为了使用户能够切换数据库,我想实现类似于iTunes或iPhoto的功能,如果在启动应用程序时按下选项键,应用程序会询问库或数据库的位置.

如果没有NSEvent,如何检查当前按下的(修饰符)键?

我已经尝试过:

[NSResponder flagsChanged:(NSEvent *)theEvent] - 可能没有被调用,因为选项键在窗口之前已经关闭,并且任何响应者都被实例化了.

[[NSApplication sharedApplication] currentEvent]- 退货nil.

macos cocoa nsevent

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

在基于视图的NSTableView中,如何通过单击使控件成为第一个响应者?

基于视图的NSTableViews似乎只是标准的行为,其中,为了使文本字段的表里面的第一个响应者,用户要么双击或单点击"保持冷静".

但是,考虑到基于视图的灵活性NSTableViews提供,这种行为并不总是令人满意,因为现在有许多不同的复杂应用程序可能而不仅仅是做一个"旧学校"表.

如何通过单击在基于视图的NSTableView中轻松地控制(可能在单元格中与其他控件一起)第一响应者?

macos cocoa objective-c nstableview nscontrol

7
推荐指数
1
解决办法
2307
查看次数

在 Mojave 上使用 Core Animation 图层绘制时如何解决透明系统颜色?

使用 macOS 10.14 Mojave 中的暗模式,大多数系统颜色都是半透明的。那就是将控件颜色与窗口背景相匹配,而窗口背景又会稍微着色以匹配桌面图片。

现在,当使用重叠的 CoreAnimation 层构建视图时,事情会变得一团糟。例子:

自定义滑块控件

这是一个用 CALayer 构建的自定义滑块。垂直轨道是旋钮层下方的一层。这是我设置颜色的方法:

- (void)updateColors // Called from updateLayer()
{
    self.tickmarkLayer.strokeColor = [NSColor tertiaryLabelColor].CGColor;
    self.tickmarkLayer.lineWidth = 1.0;

    self.trackLayer.backgroundColor = [NSColor controlBackgroundColor].CGColor;
    self.trackLayer.borderColor = [NSColor tertiaryLabelColor].CGColor;
    self.trackLayer.borderWidth = 1.0;

    self.sliderLayer.backgroundColor = [NSColor controlColor].CGColor;
}
Run Code Online (Sandbox Code Playgroud)

当然,我不希望旋钮是透明的,即轨道层不应透光。如何在保留动态色调的同时解决此问题?

理想情况下,可以访问具有当前色调且没有透明度的“有效”系统颜色。但我没有找到任何 API 来这样做。

将阴影应用于具有透明(系统)颜色的图层时会出现类似的问题。

谢谢!

cocoa core-animation objective-c nsview macos-mojave

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