我正在尝试开发一个小应用程序.在其中,我需要检测UIView中像素的颜色.我有一个CGPoint定义我需要的像素.使用CoreAnimation更改UIView的颜色.
我知道有一些复杂的方法可以从UIImages中提取颜色信息.但是我找不到UIViews的解决方案.
在伪代码我正在寻找类似的东西
pixel = [view getPixelAtPoint:myPoint];
UIColor *mycolor = [pixel getColor];
Run Code Online (Sandbox Code Playgroud)
任何输入都非常感谢.
我正在开发一个应用程序,可以在屏幕上移动第三方应用程序的窗口.
为了概述所有当前打开的窗口,我使用
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
我为可能存在的微不足道的问题道歉,但我正在碰壁,因为谷歌一遍又一遍地给我同样的不适用的答案.
我试图在LLDB中设置一个断点.阅读文档后,我可以选择停在源中的某一行或某个符号上.
我想要做的是在某个内存位置设置一个断点.
不是对该存储器位置进行读写操作,而是在该位置的指令即将执行时断开.
在伪代码中:
break 0x00010000
当EIP指向0x00010000时中断.
我怎样才能做到这一点?
我正在向Apple AppStore上传一个以10种语言本地化的新应用程序.
Apple提供多种语言和国家/地区特定选项,例如
我们已经为法语,西班牙语和葡萄牙语设置了本地化版本.
在iPhone上,应用程序默认使用最接近的语言.例如,设置为"巴西葡萄牙语"的iPhone将使用常规的葡萄牙语本地化而不是英语默认本地化.
在AppStore上是一样的吗?我们还需要设置"墨西哥西班牙语"还是墨西哥的客户默认使用西班牙语(而不是默认为英语)?
编辑:
为了澄清,这不是关于我们是否应该对这些方言进行本地化(我们在制作应用时已经决定反对),但是向客户显示的商店页面是否将以最接近的方言或英语显示.
例如,墨西哥用户会自动查看西班牙语版本(最接近的语言)还是默认语言(英语)?
我正在开发一个通过辅助端口(麦克风)接收数据的iOS应用程序.
我们连接了示波器,我们可以在测试iPhone上测量频率和振幅.
然而,即使连接了辅助电缆,除了我们的外部AUX输入外,iPhone仍然可以收听内部麦克风,从而减少我们的测量.
iPhone肯定会识别连接的AUX电缆(内置扬声器已关闭).
有没有办法以编程方式禁用内置麦克风?
要么
我们可以通过AUX端口发送一些特殊信号来禁用内置麦克风吗?
我有一个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在有和没有框架的渲染中有什么区别可以解释这个吗?
我正在学习OpenCL编程,并注意到一些奇怪的东西.
也就是说,当我在我的机器上列出所有支持OpenCL的设备(Macbook Pro)时,我得到以下列表:
第一个是我的CPU,第二个是英特尔的板载图形解决方案,第三个是我的专用显卡.
研究表明,英特尔已将其硬件OpenCL兼容,以便我可以利用板载图形单元的强大功能.那将是Iris Pro.
考虑到这一点,CPU与OpenCL兼容的目的是什么?仅仅为了方便,内核可以在CPU上运行,因为备份不应该找到其他卡,或者当运行代码作为OpenCL内核而不是常规(C,良好线程)程序时,是否存在任何速度优势中央处理器?
这是iPhone应用程序的一部分,但应该适用于一般用objC编写的Cocoa.
我有一个UILabel持有不同数量的文本(从单个字符到几个句子).文本应始终以适合UILabel中所有文本的最大可能字体显示.最大行数设置为4,换行模式设置为自动换行.
由于使用了多行,adjustsFontSizeToFitWidth将无法用于调整文本大小.
因此,我使用循环来确定每个字符串的最大可能字体大小:
Run Code Online (Sandbox Code Playgroud)//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; };
这种方法在大多数情况下都很有效.例外是长话.让我们来看一下@"体验foo".举个例子."经验"这个词比其他词长得多,将被分成两半,而不会被正确包装,并且字符串分为4行.我正在寻找一种方法来进一步减小尺寸,使每个单词适合一行.
例:
-旧- …
我正在使用Python编写一个脚本,该脚本使用mmap()映射文件以进行处理.
这些任务要求我改变文件的内容
只要旧数据和新数据具有相同的字节数,替换数据就会很有效:
VDATA = mmap.mmap(f.fileno(),0)
start = 10
end = 20
VDATA[start:end] = "0123456789"
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试删除数据(用""替换范围)或插入数据(替换范围超过范围的范围)时,我收到错误消息:
IndexError:mmap切片分配大小错误
这是有道理的.
现在的问题是,如何插入和删除mmap的文件中的数据?通过阅读文档,我似乎可以使用一系列低级操作来回移动文件的整个内容,但如果有更简单的解决方案,我宁愿避免这种情况.
我正在研究一些安全说明,因此需要有目的地编写不安全的 SQL 查询。
我正在查看的环境是.NET Core(不是完整的.NET),使用的驱动程序是EntityFrameworkCore,数据库类型是SQLite。
使用内置查找和查询功能的常规连接可以正常工作。然而,似乎没有函数可以让我执行原始 SQL 语句。
一些在线资源建议在数据库/上下文上使用.FromSql()和方法,但这些方法似乎都不存在于 .NET Core 驱动程序中。.SqlQuery()
有什么方法可以在此设置中执行原始 SQL 查询吗?
sqlite entity-framework asp.net-core-mvc .net-core asp.net-core
iphone ×3
cocoa ×2
.net-core ×1
app-store ×1
asp.net-core ×1
breakpoints ×1
c ×1
cocoa-touch ×1
colors ×1
debugging ×1
insert ×1
intel ×1
ios ×1
lldb ×1
localization ×1
macos-carbon ×1
microphone ×1
mmap ×1
nsimageview ×1
objective-c ×1
opencl ×1
performance ×1
pixel ×1
processor ×1
python ×1
sqlite ×1
uikit ×1
uilabel ×1
uiview ×1
word-wrap ×1