小编Pet*_*sey的帖子

清除UIView和UIViewController的"可能没有响应"警告

在iPad应用程序中,我正在使用UIView的自定义子类和UIViewController.这是视图标题:

@interface pdfView : UIView {
    CGPDFDocumentRef doc;
}

-(void)setDoc:(CGPDFDocumentRef)newDoc;

@end
Run Code Online (Sandbox Code Playgroud)

这是控制器头:

@interface iPadPDFTestViewController : UIViewController {
    CGPDFDocumentRef doc;
}

- (void)loadPDF;

@end
Run Code Online (Sandbox Code Playgroud)

控制器实现的一部分:

- (void)viewDidLoad {
    [super viewDidLoad];
    [self loadPDF];
    [self.view setDoc:doc];
}
Run Code Online (Sandbox Code Playgroud)

在Interface Builder中,我将视图对象设置为使用类pdfView.

在编译时,[self.view setDoc:doc];会发出警告"'UIView'可能无法响应'--setDoc'." 我猜这个警告出现是因为编译器认为它正在查看UIView(它没有实现setDoc方法)而不是pdfView.但为什么会这么想?我怎么能告诉它它正在看什么类,以便清除警告?

iphone cocoa-touch objective-c uikit ipad

0
推荐指数
1
解决办法
2379
查看次数

为什么UIControlTouchUpInside未定义?

我有一个简单的问题,但它让我感到困惑.以下代码获取UIControlTouchUpInside的UNDEFINED错误.我需要包含或导入什么?如果我注释掉这一行,它就可以了.这意味着forState:定义了UIControlStateNormal.我是新人,所以希望你能提供帮助.

UIButton * button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Accept?" forState:UIControlStateNormal];
[button addTarget:self action:@selector(acceptTapped) forControlEvents:UIControlTouchUpInside];
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch objective-c uibutton uicontrol

0
推荐指数
1
解决办法
112
查看次数

子类化UIButton但无法访问我的属性

我创建了一个UIButton的子类:

//
//  DetailButton.h
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>

@interface MyDetailButton : UIButton {
    NSObject *annotation;
}

@property (nonatomic, retain) NSObject *annotation;


@end

//
//  DetailButton.m
//


#import "MyDetailButton.h"


@implementation MyDetailButton


@synthesize annotation;

@end
Run Code Online (Sandbox Code Playgroud)

我想我可以通过执行以下操作创建此对象并设置注释对象:

MyDetailButton* rightButton = [MyDetailButton buttonWithType:UIButtonTypeDetailDisclosure];
rightButton.annotation = localAnnotation;
Run Code Online (Sandbox Code Playgroud)

localAnnotation是一个NSObject,但它实际上是一个MKAnnotation.我不明白为什么这不起作用,但在运行时我得到这个错误:

 2010-05-27 10:37:29.214 DonorMapProto1[5241:207] *** -[UIButton annotation]: unrecognized selector sent to instance 0x445a190
2010-05-27 10:37:29.215 DonorMapProto1[5241:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[UIButton annotation]: unrecognized selector sent to instance 0x445a190'
Run Code Online (Sandbox Code Playgroud)

"

我不明白为什么它甚至会查看UIButton,因为我已经将其子类化了,所以应该查看MyDetailButton类来设置该注释属性.我错过了一些非常明显的东西.感觉就像:)

提前感谢您提供的任何帮助

罗斯

cocoa cocoa-touch subclass objective-c uibutton

0
推荐指数
1
解决办法
4056
查看次数

为什么NSNotificationCenter在发布时会抛出异常?

这不是一个考虑思考的问题 - 为什么NSNotificationCenter在发布时抛出异常?我还是iPhone开发的新手,因此还不知道Cocoa的内部,所以理解为什么会很好.

我将defaultCenter分配给变量,调用addObserver:selector:name:object然后释放上一个变量,但调用[notify release]会使应用程序崩溃.我在代码中没有做任何奇怪的事情,所以找出它为什么这样做会很有趣.

有人遇到过这个问题吗?

iphone cocoa cocoa-touch exception nsnotificationcenter

0
推荐指数
1
解决办法
418
查看次数

如何清除Cocoa中的文本字段

我正在尝试使用最新版本的XCode制作一个简单的Cocoa应用程序.在界面构建器中,我添加了NSTextField和NSButton.当我按下按钮时,我希望它清除文本字段中的任何内容.

我创建了一个名为AppController.h的新类.这是内容:

#import <Foundation/Foundation.h>


@interface AppController : NSObject {
    IBOutlet id textView;

}

- (IBAction) clearText: sender;
@end
Run Code Online (Sandbox Code Playgroud)

AppController.m看起来像这样:

#import "AppController.h"


@implementation AppController

- (IBAction) clearText: sender 
{ 
    [textView setString: @" "]; 


} 
@end
Run Code Online (Sandbox Code Playgroud)

我将按钮连接到clearText,将文本框连接到textView.

该程序编译并运行.但是当我按下按钮时,没有任何反应.这是为什么?

cocoa

0
推荐指数
1
解决办法
9143
查看次数

Cocoa中的setString与setStringValue

我试图使用方法setString来更改文本字段中的文本,但它不起作用.然后我将其更改为setStringValue并且它有效.那么setString用于什么?

cocoa

0
推荐指数
1
解决办法
2422
查看次数

从可可中的窗口ID获取应用程序图标

我正在寻找一种方法从可可的窗口ID获取应用程序图标.你有指针吗?

macos cocoa

0
推荐指数
1
解决办法
709
查看次数

如何在iPhone应用程序中更改背景颜色

我在视图控制器中尝试了这段代码,但它没有用.这是为什么?

- (void)viewDidLoad {
 [self setBackgroundColor:[UIColor colorWithRed:1.0 green:1.0 blue:1.0 alpha:1.0]];
    [super viewDidLoad];
}
Run Code Online (Sandbox Code Playgroud)

iphone cocoa-touch ipod-touch uikit

0
推荐指数
1
解决办法
4764
查看次数

自定义UIViewController子视图不旋转,但superview确实,帮我解决原因?

简单的iPad应用.

App加载并显示由UIViewController的子类控制的UITableView.这工作和旋转完美.

单击表视图中的行会导致创建新的子视图,该子视图也由UIViewController子类控制.这在纵向显示良好,但不适应横向,并且不响应设备旋转.

两个视图控制器都包括:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    NSLog(@"Responding to rotation");
    return YES;
}
Run Code Online (Sandbox Code Playgroud)

但是只有原始视图控制器响应:

   - (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
{
    NSLog(@"View About to rotate");
}
Run Code Online (Sandbox Code Playgroud)

在IB中,我检查了视图是否会自动调整,其中的组件(UIScrollView和一些UILabels)将正确调整.

任何人都可以帮我解决为什么子视图没有响应.

cocoa-touch uiviewcontroller uikit ipad autorotate

0
推荐指数
1
解决办法
4930
查看次数

枚举不同对象的NSArray

NSMutableArray *array = [NSMutableArray arrayWithObjects:@"Hello World!", [NSURL URLWithString:@"http://www.apple.com"], nil];
for (id *object in array) {
 NSLog(@"Class name: %@", [object className]);
}
Run Code Online (Sandbox Code Playgroud)

鉴于上述不同对象的数组,通过它们快速枚举的正确方法是什么?使用上面的代码我确实看到了我的日志语句,但Xcode确实抱怨以下消息

我的NSLog语句中的接收器类型'id*'无效.

cocoa objective-c

0
推荐指数
1
解决办法
729
查看次数