小编0x9*_*x90的帖子

如何获得UIView中像素的颜色?

我正在尝试开发一个小应用程序.在其中,我需要检测UIView中像素的颜色.我有一个CGPoint定义我需要的像素.使用CoreAnimation更改UIView的颜色.

我知道有一些复杂的方法可以从UIImages中提取颜色信息.但是我找不到UIViews的解决方案.

在伪代码我正在寻找类似的东西

pixel = [view getPixelAtPoint:myPoint];
UIColor *mycolor = [pixel getColor];
Run Code Online (Sandbox Code Playgroud)

任何输入都非常感谢.

iphone pixel colors uiview

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

通过OSX Accessibility API获取窗口号

我正在开发一个应用程序,可以在屏幕上移动第三方应用程序的窗口.

为了概述所有当前打开的窗口,我使用

CGWindowListCopyWindowInfo(kCGWindowListOptionOnScreenOnly | kCGWindowListExcludeDesktopElements, kCGNullWindowID);
Run Code Online (Sandbox Code Playgroud)

这将返回定义每个打开窗口的字典数组.这是一个返回的示例字典:

{
    kCGWindowAlpha = 1;
    kCGWindowBounds =         {
        Height = 442;
        Width = 475;
        X = 3123;
        Y = "-118";
    };
    kCGWindowIsOnscreen = 1;
    kCGWindowLayer = 0;
    kCGWindowMemoryUsage = 907184;
    kCGWindowName = Untitled;
    kCGWindowNumber = 7328;
    kCGWindowOwnerName = TextEdit;
    kCGWindowOwnerPID = 20706;
    kCGWindowSharingState = 1;
    kCGWindowStoreType = 2;
    kCGWindowWorkspace = 3;
},
Run Code Online (Sandbox Code Playgroud)

字典中充满了其他地方使用的良好信息,但缺少可用于修改窗口位置的辅助功能对象.窗口编号清楚地标识Windows.

我现在使用PID(kCGWindowOwnerPID)为窗口的应用程序创建一个辅助功能对象:

AXUIElementRef app = AXUIElementCreateApplication(pid);
Run Code Online (Sandbox Code Playgroud)

然后使用AXUIElementCopyAttributeValues检索应用程序已打开的所有窗口的列表:

NSArray *result;

AXUIElementCopyAttributeValues(
                               (AXUIElementRef) app, 
                               kAXWindowsAttribute,
                               0,
                               99999,
                               (CFArrayRef *) &result
                               );
Run Code Online (Sandbox Code Playgroud)

这适用于并返回一组AXUIElements.这是我被困的地方.似乎没有API调用来检索辅助功能对象的窗口号.有没有办法

a)找到辅助功能对象的窗口编号(最终迭代数组并找到正确的窗口)

要么 …

cocoa accessibility macos-carbon objective-c accessibility-api

22
推荐指数
2
解决办法
5571
查看次数

LLDB在地址处休息

我为可能存在的微不足道的问题道歉,但我正在碰壁,因为谷歌一遍又一遍地给我同样的不适用的答案.

我试图在LLDB中设置一个断点.阅读文档后,我可以选择停在源中的某一行或某个符号上.

我想要做的是在某个内存位置设置一个断点.

不是对该存储器位置进行读写操作,而是在该位置的指令即将执行时断开.

在伪代码中:

break 0x00010000

当EIP指向0x00010000时中断.

我怎样才能做到这一点?

debugging breakpoints lldb

13
推荐指数
1
解决办法
8603
查看次数

提交到Apple的AppStore时使用类似的语言

我正在向Apple AppStore上传一个以10种语言本地化的新应用程序.

Apple提供多种语言和国家/地区特定选项,例如

  • 加拿大法语
  • 墨西哥西班牙
  • 巴西葡萄牙语

我们已经为法语,西班牙语和葡萄牙语设置了本地化版本.

在iPhone上,应用程序默认使用最接近的语言.例如,设置为"巴西葡萄牙语"的iPhone将使用常规的葡萄牙语本地化而不是英语默认本地化.

在AppStore上是一样的吗?我们还需要设置"墨西哥西班牙语"还是墨西哥的客户默认使用西班牙语(而不是默认为英语)?

编辑:

为了澄清,这不是关于我们是否应该对这些方言进行本地化(我们在制作应用时已经决定反对),但是向客户显示的商店页面是否将以最接近的方言或英语显示.

例如,墨西哥用户会自动查看西班牙语版本(最接近的语言)还是默认语言(英语)?

localization itunesconnect app-store

11
推荐指数
2
解决办法
2326
查看次数

iOS SDK禁用内置麦克风

我正在开发一个通过辅助端口(麦克风)接收数据的iOS应用程序.

我们连接了示波器,我们可以在测试iPhone上测量频率和振幅.

然而,即使连接了辅助电缆,除了我们的外部AUX输入外,iPhone仍然可以收听内部麦克风,从而减少我们的测量.

iPhone肯定会识别连接的AUX电缆(内置扬声器已关闭).

有没有办法以编程方式禁用内置麦克风?

要么

我们可以通过AUX端口发送一些特殊信号来禁用内置麦克风吗?

iphone microphone audio-recording ios

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

调整大小的NSImageView不重绘

我有一个NSImageView,它从应用程序包中加载一个图像.

它设置如下:

coverImage.image = [NSImage imageNamed:@"themeSignEnd.png"];
coverImage.imageScaling = NSImageScaleNone;
coverImage.imageAlignment = NSImageAlignLeft;
Run Code Online (Sandbox Code Playgroud)

图像显示得很好.

NSImageView的大小是基于其他几个因素计算的,然后使用以下代码进行设置:

coverImage.frame = CGRectMake((1280 - 869) / 2, 0, 869 * percentage, 800);
Run Code Online (Sandbox Code Playgroud)

这在第一次完成时(应用程序启动时)完全正常.

NSImageView采用大小,所包含的图像在适当的边界处被截断.

不幸的是,当我在应用程序运行时尝试调整NSImageView的大小时(使用上面相同的代码),它不会明显更新.

NSLogging coverImage.frame显示帧本身已正确更新.但是,视图似乎没有重新绘制 - 无论是缩小还是增长帧时.此外,当我退出并重新启动应用程序时,NSImageView会绘制正确的边框.

什么可能导致这种行为?

是否有可能不重绘NSImageView?如果是这样,我该如何强制重绘?

我错过了NSImageView的任何其他怪癖会导致这种行为吗?

编辑:

事实证明,只有在ImageFrameStyle属性设置为时才会发生此错误NSImageFrameNone.如果框架被设置为其他任何东西,它会被重新绘制得很好.不幸的是,我们需要在没有框架的情况下显示图像.

NSImageViews在有和没有框架的渲染中有什么区别可以解释这个吗?

cocoa nsimageview

7
推荐指数
2
解决办法
1885
查看次数

在aCPU上运行OpenCL代码有什么好处?

我正在学习OpenCL编程,并注意到一些奇怪的东西.

也就是说,当我在我的机器上列出所有支持OpenCL的设备(Macbook Pro)时,我得到以下列表:

  • Intel(R)Core(TM)i7-4850HQ CPU @ 2.30GHz
  • Iris Pro
  • GeForce GT 750M

第一个是我的CPU,第二个是英特尔的板载图形解决方案,第三个是我的专用显卡.

研究表明,英特尔已将其硬件OpenCL兼容,以便我可以利用板载图形单元的强大功能.那将是Iris Pro.

考虑到这一点,CPU与OpenCL兼容的目的是什么?仅仅为了方便,内核可以在CPU上运行,因为备份不应该找到其他卡,或者当运行代码作为OpenCL内核而不是常规(C,良好线程)程序时,是否存在任何速度优势中央处理器?

c performance processor intel opencl

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

调整UILabel的大小以适应Word Wrap

这是iPhone应用程序的一部分,但应该适用于一般用objC编写的Cocoa.

我有一个UILabel持有不同数量的文本(从单个字符到几个句子).文本应始终以适合UILabel中所有文本的最大可能字体显示.最大行数设置为4,换行模式设置为自动换行.

由于使用了多行,adjustsFontSizeToFitWidth将无法用于调整文本大小.

因此,我使用循环来确定每个字符串的最大可能字体大小:

    //Set the text  
    self.textLabel.text = text;
    //Largest size used  
    NSInteger fsize = 200;  textLabel.font = [UIFont
    fontWithName:@"Verdana-Bold"
    size:fsize];

    //Calculate size of the rendered string with the current parameters
    float height = [text sizeWithFont:textLabel.font
        constrainedToSize:CGSizeMake(textLabel.bounds.size.width,99999) 
        lineBreakMode:UILineBreakModeWordWrap].height;

    //Reduce font size by 5 while too large, break if no height (empty string)
    while (height > textLabel.bounds.size.height and height != 0) {   
        fsize -= 5;  
        textLabel.font = [UIFont fontWithName:@"Verdana-Bold" size:fsize];   
        height = [text sizeWithFont:textLabel.font 
            constrainedToSize:CGSizeMake(textLabel.bounds.size.width,99999) 
            lineBreakMode:UILineBreakModeWordWrap].height;
    };
Run Code Online (Sandbox Code Playgroud)

这种方法在大多数情况下都很有效.例外是长话.让我们来看一下@"体验foo".举个例子."经验"这个词比其他词长得多,将被分成两半,而不会被正确包装,并且字符串分为4行.我正在寻找一种方法来进一步减小尺寸,使每个单词适合一行.

例:

-旧- …

iphone cocoa-touch word-wrap uikit uilabel

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

在mmap的文件中删除/插入数据

我正在使用Python编写一个脚本,该脚本使用mmap()映射文件以进行处理.

这些任务要求我改变文件的内容

  1. 替换数据
  2. 以偏移量将数据添加到文件中
  3. 从文件中删除数据(不是将其删除)

只要旧数据和新数据具有相同的字节数,替换数据就会很有效:

VDATA = mmap.mmap(f.fileno(),0)
start = 10
end = 20
VDATA[start:end] = "0123456789"
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试删除数据(用""替换范围)或插入数据(替换范围超过范围的范围)时,我收到错误消息:

IndexError:mmap切片分配大小错误

这是有道理的.

现在的问题是,如何插入和删除mmap的文件中的数据?通过阅读文档,我似乎可以使用一系列低级操作来回移动文件的整个内容,但如果有更简单的解决方案,我宁愿避免这种情况.

python mmap insert

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

在 .NET Core 上使用 EntityFrameworkCore 和 SQLite 执行原始 SQL

我正在研究一些安全说明,因此需要有目的地编写不安全的 SQL 查询。

我正在查看的环境是.NET Core(不是完整的.NET),使用的驱动程序是EntityFrameworkCore,数据库类型是SQLite。

使用内置查找和查询功能的常规连接可以正常工作。然而,似乎没有函数可以让我执行原始 SQL 语句。

一些在线资源建议在数据库/上下文上使用.FromSql()和方法,但这些方法似乎都不存在于 .NET Core 驱动程序中。.SqlQuery()

有什么方法可以在此设置中执行原始 SQL 查询吗?

sqlite entity-framework asp.net-core-mvc .net-core asp.net-core

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