我试图找到当键盘上升时我移动视图时哪个文本字段处于活动状态.我正在尝试从scrollview的子视图中设置我的viewcontroller中的属性.
这是我用来在scrollview中显示视图的代码
-(void)displayView:(UIViewController *)viewController{
[[viewFrame subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];
[viewFrame scrollRectToVisible:CGRectMake(0, 0, 1, 1)
animated:NO];
[viewFrame addSubview: viewController.view];
_currentViewController = viewController;
}
Run Code Online (Sandbox Code Playgroud)
- 编辑 -
我改变了对这个问题的思考方式.对不起,我发布时问题含糊不清.我当时筋疲力尽,脑子里有意义.
一个不同但相似的问题:UITextArea和UITextView的公共子类是否会给我firstResponder的起源?或者,在找到原点之前,还需要检查firstResponder的类吗?
我正在尝试计划如何将某些方法添加到某些对象的所有实例.我认为向父对象(UIViewController)添加一个类别可以用于我想做的事情,但是我可以覆盖这样添加的方法吗?大多数情况下,子类将使用默认方法,但我知道我需要至少覆盖一次方法.
还有什么其他方法我应该考虑我想做什么?
我想要做的例子:
我有一组对象,就像日记的页面一样.这些页面是UIViewControllers的子类.我想添加加载,保存和类似的方法.在日记类(NSObject的子类)中,我有一个存储每个Journal页面实例的数组.我想要它所以我可以从数组中选择一个页面并运行方法,而不必知道具体的对象类,因为它们都应该有方法.
我一直在学习iOS编程的委托和数据源,需要问一下,制作数据源协议而不是委托协议时,您需要做些什么?
另外,如何在一个委托中为许多相同的对象实现委托?示例一个具有许多唯一自定义警报的对象
- 编辑 -
第二部分的一个例子:
一个对象有四个不同的警报,每个警报都有不同的按钮 由于对象需要通过成为警报的委托来指示每个按钮的工作方式.如何设置委托方法以确定每个警报?
为即将开始的项目使用类型转换,我意外地发现了这个错误:
incompatible types: Class<CAP#1> cannot be converted to myObj
where CAP#1 is a fresh type-variable:
CAP#1 extends ImyObj from capture of ? extends ImyObj
Run Code Online (Sandbox Code Playgroud)
导致此错误的代码:
ImyObj testObj = new myObj();
System.out.println(testObj.sayHi());
myObj testObj2 = (testObj.getClass()) testObj;
System.out.println(testObj2.sayBye());
Run Code Online (Sandbox Code Playgroud)
但是这很好用:
ImyObj testObj = new myObj();
System.out.println(testObj.sayHi());
myObj testObj2 = (myObj) testObj;
System.out.println(testObj2.sayBye());
Run Code Online (Sandbox Code Playgroud)
难道他们不应该做同样的事情,或者我错过了什么?我目前安装了Java 1.7_51.我已经有一段时间了,因为我沉浸在Python 2.7中,因此我接触了Java(1.7之前).
编辑:
Louis Wasserman的回答也提出了同样的错误.
我不知道它是否是XCode中的一个缺陷或者我在Obj-C中缺乏经验但是我遇到了一个问题,试图在一个包含指向另一个的指针的类中创建属性,而另一个类有一个属性包含指向第一个类的指针.
我知道上面的内容可能不太清楚,但希望这个例子说明我的意思:
//Class Journal.h
@property (strong) JournalVC *JVC
//Class JournalVC.h
//IVar
Journal *_Journal
Run Code Online (Sandbox Code Playgroud)
在这两个类中,我导入另一个的头,因此XCode知道另一个的类.如果我不导入标题,它会抱怨它不知道属性/ IVar应该是什么类型,并且想要用它来替换它(JournalVC作为Journal反之亦然).当两个类都具有另一个的头的import语句时,也会发生这种情况.
如果只有一个人知道另一个,就不会发生这种情况.当JournalVC被UIVIewController(它的父类)替换而没有import语句时,它可以工作,而IVar保持不变,并且标头导入另一个.
我认为问题是两个标头互相导入,这导致与XCode混淆.有没有其他方法让其中一个头文件知道该属性的类没有这个问题?
我正在使用RSA算法进行简单加密,发现了一个奇怪的错误.
private static Integer testEnc(Integer value){
Integer val = (int)Math.pow(value, 37);
return val % 437;
}
private static Integer testDec(Integer value){
Integer val = new Integer((int)Math.pow(value, 289));
return val % 437;
}
public static void main(String[] args) {
System.out.print("Encode 55 = ");
Integer encoded = testEnc(2);
System.out.println(encoded + "\n");
System.out.print(encoded + " decoded = ");
Integer decoded = testDec(3977645);
System.out.println(decoded + "n");
}
Run Code Online (Sandbox Code Playgroud)
无论输入如何,以下两个函数都返回97.如果我注释掉模数并返回val,则返回值为2147483647.
类型转换double到int似乎是问题,但我不知道为什么会这样.这些方法只是静态的,因为我是从main方法调用它们的.