我想将CGPoint从我的UIView转换为UIWindow坐标,并意识到UIApplication keyWindow总是为零; 为什么是这样?
我尝试过convertPoint:toView:UIView 的方法.
请在Xcode模板(View应用程序)中查看我在视图控制器中尝试的示例代码:
- (void)viewDidLoad {
[super viewDidLoad];
UIView *test = [[UIView alloc] initWithFrame:CGRectMake(40,40,250,250)];
[test setBackgroundColor:[UIColor redColor]];
[self.view addSubview:test];
CGPoint p = CGPointMake(100, 100);
CGPoint np;
np = [test convertPoint:p toView:[[UIApplication sharedApplication] keyWindow]];
NSLog(@"p:%@ np:%@", NSStringFromCGPoint(p), NSStringFromCGPoint(np));
AppDelegate *appDel = (AppDelegate *)[UIApplication sharedApplication].delegate;
np = [test convertPoint:p toView:[appDel window]];
NSLog(@"p:%@ np:%@", NSStringFromCGPoint(p), NSStringFromCGPoint(np));
np = [test convertPoint:p toView:nil];
NSLog(@"p:%@ np:%@", NSStringFromCGPoint(p), NSStringFromCGPoint(np));
[test release];
if(![[UIApplication sharedApplication] keyWindow])
NSLog(@"window was nil");
}
Run Code Online (Sandbox Code Playgroud)
我得到:
p:{100, 100} np:{100, …Run Code Online (Sandbox Code Playgroud) 我想要一个评估2个bool变量的函数(比如真值表)
例如:
以来
T | F:T
然后
myfunc('t', 'f', ||); /*defined as: bool myfunc(char lv, char rv, ????)*/
Run Code Online (Sandbox Code Playgroud)
应该回归真实;
我怎么能传递第三个参数?(我知道可以将它作为char*传递但是我必须有另一个表来比较运算符字符串,然后执行我想避免的操作)
是否可以在函数/方法中传递^(XOR)或||(OR)或&&(AND)等运算符?
提前致谢
我注意到在Tower(Mac的Git客户端)中,用户甚至可以逐行丢弃更改.我想知道如何使用命令行完成这项工作?或许是塔的特别之处?
在这种情况下,我经常发现自己:
@@ -391,7 +392,7 @@ extern BOOL validateReceiptAtPath(NSString *path);
NSURL *url = [self fileURL];
if (url != nil) {
NSRect readFrame = [self _readPreferenceOfFileAtURL:url];
-
+
for (NSScreen * screen in [NSScreen screens]) {
NSRect screenVisibleRect = [screen visibleFrame];
...
Run Code Online (Sandbox Code Playgroud)
看看我有一个+和一个- ?我想丢弃它,所以我的提交有最小的变化(因此冲突的可能性更小,更容易审查)
:)
我正在尝试这个但是没有工作......为什么?
<html>
<body>
<script type="text/javascript">
var today=new Date(); //today is Nov 28, 2010
today.setHours(0);
today.setMinutes(0);
today.setSeconds(0);
document.write(today+" ");
var today2 = new Date("November 28, 2010");
document.write(today2 + " ");
if (today == today2) { document.write("==");
if (!(today > today2) && !(today < today2) ) {document.write("== ");}
if (today > today2) { document.write("> ");}
if (today >= today2 ){ document.write(">= ");}
if (today < today2 ) { document.write("< ");}
if (today <= today2 ){ document.write("<= ");}
</script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我总是得到这个:
Sun …Run Code Online (Sandbox Code Playgroud) 如何使用Xib正确加载作为NSView子类的对象?
我希望它不是从头开始动态加载,所以我做了一个MyView.Xib来自MyDocument.m我做了:
MyView *myView = [[MyView alloc] initWithFrame:...];
[NSBundle loadNibNamed:@"MyView" owner:myView];
[someview addSubview:myView];
...
Run Code Online (Sandbox Code Playgroud)
并且背景很好(它调用drawrect:它按预期绘制)但是我放在xib上的所有按钮都不会出现.我已经检查了,他们已经加载但他们的超级视图不是同一个对象myView.
为什么是这样?我想我在Xib中遗漏了一些东西,但我不知道究竟是什么.换句话说:我如何确保我的xib中的根视图与文件所有者是同一个对象?
我希望mac有类似的东西:
NSArray* nibViews = [[NSBundle mainBundle] loadNibNamed:@"MyView" owner:self options:nil]; //in iOS this will load the xib
MyView* myView = [ nibViews objectAtIndex:1];
[someview addSubview:myView];
...
Run Code Online (Sandbox Code Playgroud)
提前致谢.
编辑
我想我已经意识到问题的根源......(??)
在MyView类中,我有各种IBOutlet,它们在IB中正确连接,这就是为什么它们加载得很好(我可以参考它们).但是顶视图没有IBOutlet.因此,当NSBundle加载nib时,顶视图会被分配给其他对象.我认为如果我将IB中的顶视图设置为来自类:MyView并且将其myView作为所有者,[NSBundle loadNibNamed:@"MyView" owner:myView];但似乎并非如此.我究竟做错了什么?
Xcode有时会自动找到依赖项.当我是那个定义关系的人,当我变得懒惰时,我认为是可以的......
但更多的时候我发现自己面临着一个存在(中等到大尺寸)项目的目标.由于该项目是由其他人制作的,我发现很难理解哪些目标取决于什么,因为并非所有关系都是明确的.
Xcode用于查找此类关系的规则是什么?(我希望我能理解逻辑,所以在我的脑海中运行它并且可能在将来节省一些时间)或者是什么使目标有资格隐含地依赖于另一个?
目标及其创建的产品可能与另一个目标相关.如果目标需要另一个目标的输出以便构建,则说第一个目标依赖于第二个目标.如果两个目标都位于同一工作空间中,Xcode可以发现依赖关系,在这种情况下,它会按所需顺序构建产品.这种关系被称为隐式依赖.
我有自己的UIPopoverController作为委托:当我在弹出控制器外面点击时我接到电话,但当我点击内部时我也想解雇,所以我使用-dismissPopoverAnimated:但是在这种情况下不调用委托.这是正常的吗?这是一个错误还是我做错了什么?
newDocPopoverController = [[UIPopoverController alloc] initWithContentViewController:vc];
[newDocPopoverController setPopoverContentSize:CGSizeMake(240, 44*4)];
[newDocPopoverController presentPopoverFromBarButtonItem:sender
permittedArrowDirections:UIPopoverArrowDirectionAny
animated:YES];
[newDocPopoverController setDelegate:self];
Run Code Online (Sandbox Code Playgroud)
更新:
哦,无论问题的根源(是否是一个错误或这是预期的行为)自己调用委托解决了问题:)
当触摸contentViewController的视图时,我将调用父UIPopoverController的委托.
if ([parentPopoverController.delegate popoverControllerShouldDismissPopover:parentPopoverController]){
[parentPopoverController dismissPopoverAnimated:YES];
[parentPopoverController.delegate popoverControllerDidDismissPopover:parentPopoverController];
}r];
Run Code Online (Sandbox Code Playgroud) 我想知道制作一个没有箭头的UIPopoverController其实我想模拟这样的东西:

看到了
没有箭头
有一个标题在UIPopoverController的扩展顶部边框内部,而不是像普通的UIPopoverController一样.
我假设这不是一个真正的UIPopoverController对象,但我会欣赏有关如何产生相同效果的建议(使用CoreGraphics? - >特别是3D优秀边框的半透明降级效果)和/或链接到某些来源(如果有人已经完成)这之前.
提前致谢.
伊格纳西奥
编辑:
我仍在寻找这些东西,并意识到即使在第三方应用程序正在使用的例子是:twitterrific for iPad,如图所示.有人请?将标题放在popovercontroller中只是丑陋的.

我想在c ++中实现一个具有回调的类.
所以我想我需要一个有两个参数的方法:
条件是:
myObj可以来自任何一个类.
将成为回调函数的成员函数是非静态的.
我一直在读这个,但看起来我需要事先了解myObj的类.但我不知道该怎么做.我怎么处理这个?这在C++中是否可行?
这是我想到的,但肯定是不正确的.
class MyClassWithCallback{
public
void *targetObj;
void (*callback)(int number);
void setCallback(void *myObj, void(*callbackPtr)(int number)){
targetObj = myObj;
callback = callbackPtr;
};
void callCallback(int a){
(myObj)->ptr(a);
};
};
class Target{
public
int res;
void doSomething(int a){//so something here. This is gonna be the callback function};
};
int main(){
Target myTarget;
MyClassWithCallback myCaller;
myCaller.setCallback((void *)&myTarget, &doSomething);
Run Code Online (Sandbox Code Playgroud)
}
我感谢任何帮助.
谢谢.
更新大多数人说观察和代表,这就是我正在寻找的,我是一个Objective-C/Cocoa头脑的家伙.我目前的实现是使用具有虚函数的接口.我只是认为传递对象和成员函数指针(如boost!)而不是定义接口会"更聪明".但似乎每个人都认为Interfaces是最简单的方法吗?Boost似乎是一个好主意,(假设已安装)
c++ ×3
iphone ×3
cocoa-touch ×2
macos ×2
objective-c ×2
auto-ptr ×1
c ×1
callback ×1
cocoa ×1
delegates ×1
git ×1
ios ×1
javascript ×1
parameters ×1
pointers ×1
std ×1
uikit ×1
xcode ×1