Tag: cocoa触摸

XCode:放置图像资源的地方

我正在尝试为我的应用添加一些App Icons并Launch Images 。 我的代码文件在Xcode内部组织,在文件系统中也是一样的。 我尝试将名为Resources的文件夹与我的PNG图像一起拖入我的应用程序,之后尝试将它们添加为App Icons并为我的应用程序Launch Images ,但Xcode然后给了我一个警告,并将该文件复制到我的项目的根目录 – – 在Xcode和文件系统中。 这是正常的,图像放在根(与xcodeproj文件相同的水平)?

目前MFMailComposeViewController从模态FormSheet在iPad上?

有没有人成功地从iPad上的UIModalPresentationStyleFormSheet视图控制器显示标准的Apple MFMailComposeViewController ? 当我这样做时,视图按预期显示,但是当用户点击任何input文本视图,例如主题和按下“取消”button的键盘幻灯片时,将显示“删除草稿”和“保存草稿”popup窗口屏幕边界。 如果我将模式视图更改为全屏,则可以正常工作。

如何让对象在callback中释放?

我有一个用Objective C编写的类,它通过连接到networking来完成一些工作。 这个类以asynchronous的方式完成这个工作,并且用户给出了一个操作完成后调用的委托(如果失败则返回成功或错误)。 当没有更多的工作要做,可以释放对象的时候调用委托。 现在我想支持一个用例,当用户将在调用这个委托时释放我的类的对象。 这是自然的,因为我的课的实例是不可重用的。 目前,当我的电话从回叫返回时,它试图从剩下的地方继续发现它已被释放。 不用说,应用程序崩溃在这一点上。 我知道这可以做,因为NSURLConnection类就是这样做的。 可以在callback中释放连接对象- (void)connectionDidFinishLoading:(NSURLConnection *)connection 。 我怎么能做到这一点? 编辑: 这里是更好地理解它的代码: @class MyRequest; @protocol MyDelegate – (void)completedRequest:(MyRequest*)request; @end @interface MyRequest : NSObject { id<MyDelegate> myDelegate; //variables… } – (id)init; – (id)initWithUrl:(NSString*)url delegate:(id<MyDelegate>)delegate; – (void)dealloc; – (void)fire; @property (nonatomic, readonly) bool fired; @property (nonatomic, readonly) NSInteger resultCode; @property (nonatomic, readonly) NSString […]

为什么heightForRowAtIndexPath:在cellForRowAtIndexPath之前:?

几乎每次我为客户写一个应用程序时,我都必须实现某种“黑客”才能让UITableViewCelldynamic地变成正确的高度。 根据细胞的内容,这可能会有所不同。 我通常最终运行通过格式化单元格的代码两次,一次在heightForRowAtIndexPath:然后在cellForRowAtIndexPath:再次运行。 然后,我使用数组或字典来存储高度或格式化的单元格对象。 我可能在过去的2年里写了20次这个代码。 苹果为什么按这个顺序执行它? 这将是更简单的configuration单元格,然后设置高度或者在cellForRowAtIndexPath:或heightForRowAtIndexPath:在heightForRowAtIndexPath: 现有订单有充分的理由吗? 有更好的方法来处理它吗?

子类UIWindow

我只是尝试子类UIWindow,以便我可以拦截一些通知。 随着下面列出的代码,我也进入MainWindow.xib并更新UIWindow对象到我的子类。 它加载好,问题是我的标签栏上的标签没有反应(在下面的例子中,我只添加了一个选项卡,但在我的应用程序,我有多个(这不是问题))。 任何人都可以看到我可能做错了什么? 谢谢。 UISubclassedWindow.h #import <UIKit/UIKit.h> @interface UISubclassedWindow : UIWindow { } @end UISubclassedWindow.m #import "UISubclassedWindow.h" @implementation UISubclassedWindow – (id) initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { NSLog(@"init"); } return self; } – (void)makeKeyAndVisible { [super makeKeyAndVisible]; NSLog(@"makeKeyAndVisible"); } – (void)becomeKeyWindow { [super becomeKeyWindow]; NSLog(@"becomeKeyWindow"); } – (void)makeKeyWindow { [super makeKeyWindow]; […]

UITableViewCell:允许select性删除

我有一个表视图,并希望允许所有单元格的重新sorting,但有一些单元格,我不希望被允许删除。 当UiTableView进入删除模式时,我不想让红色的“ – ”button出现在左侧,也不希望滑动手势调出这些单元格的删除button,但希望它为其他人发生。 有任何想法吗?

我可以以编程方式列出Images.xcassets /东西中的文件吗?

是否有可能列出Images.xcassets /东西内的所有图像,以便我可以在列表视图中显示它们? 我试过了: NSArray *pngs = [NSBundle pathsForResourcesOfType:@".png" inDirectory:@"Images.xcassets/Something"]; NSInteger count = [pngs count]; NSLog(@"%d", count); …但很less成功。 谢谢

将NSUInteger分配给BOOL概念理解

我正在努力寻找BOOL概念的一个很好的答案。 据我所知,零是一个错误的值,非零是一个真正的值。 想到这一点,我把string长度分配到BOOLvariables。 现在,这对iOS> 6很好。在iOS 6我看到奇怪的结果。 对于奇数长度的string,isEnabled为true,但对于长度均匀的string,isEnabled为turing False。 BOOL isEnabled = myString.length; 请帮我理解这一点。 当然,现在我已经把expression式分配给BOOLvariables,像这样: BOOL isEnabled = myString.length > 0; 准确的代码: – (void)textViewDidChange:(UITextView *)iTextView { self.navigationItem.rightBarButtonItem.enabled = [[self.noteTextView.text trim] length]; } PS:如上所述,myString的长度正在改变。 从'a'到'ab'到'abc'等

Swift:如何从NSScanner的AutoreleasingUnsafePointer <NSString?>中获取值?

我不知道如何使用AutoreleasingUnsafePointer。 我有以下代码: var myString: AutoreleasingUnsafePointer<NSString?> myScanner.scanUpToCharactersFromSet(NSCharacterSet.newlineCharacterSet(), intoString: myString) 现在,我应该怎么做从'myString'的string? 我知道它可以是零,但我不知道如何获得string值的情况下,它不是零。 而Swift展开技巧只适用于Optionaltypes。 谢谢!

内存pipe理与代表?

内存pipe理与委托,这是我的理解,我不保留委托,我有点不确定如何处理委托如果视图被卸载(通过viewDidUnload),后来重新创build(通过viewDidLoad)? @property(assign) SomeClass *someDelegate; 。 – (void)viewDidLoad { [super viewDidLoad]; someDelegate = [[SomeClass alloc] init]; [someDelegate setDelegate:self]; } -(void)viewDidUnload { [super viewDidUnload]; [self setSomeDelegate:nil]; } -(void)dealloc { [super dealloc]; } PS:我可能在错误的轨道上,我只是想把我的头转过来… 欢呼加里