小编Ken*_*ger的帖子

获取UIScrollView内容的可见rect

我怎样才能找到屏幕上实际可见的显示视图内容的rect(CGRect).

myScrollView.bounds
Run Code Online (Sandbox Code Playgroud)

上面的代码在没有缩放时有效,但只要你允许缩放,它就会以1以外的缩放比例中断.

为了澄清,我想要一个CGRect,它包含相对于内容的滚动视图内容的可见区域.(即如果它是缩放比例2,则矩形的大小将是滚动视图大小的一半,如果它是缩放比例0.5,它将是双倍.)

iphone objective-c uiscrollview

69
推荐指数
5
解决办法
7万
查看次数

PHP get_called_class()替代方案

我有一个抽象PHP超类,它包含需要知道其运行的子类的代码.

class Foo {
    static function _get_class_name() {
        return get_called_class();
        //works in PHP 5.3.*, but not in PHP 5.2.*
    }

    static function other_code() {
        //needs to know
        echo self::_get_class_name();
    }
}

class Bar extends Foo {
}

class FooBar extends Foo {
}

Bar::other_code(); // i need 'Bar'
FooBar::other_code(); // i need 'FooBar'
Run Code Online (Sandbox Code Playgroud)

如果我调用该函数get_called_class(),这将有效- 但是,此代码将在PHP 5.2版中运行.*,因此该函数不可用.

那里有一些自定义的PHP实现get_called_class(),但它们都依赖于debug_backtrack()解析文件名和行号,并运行正则表达式(因为编码器不知道PHP 5.2有反射)来查找类名.这段代码需要能够用php运行,即.不仅来自.php文件.(它需要从php -ashell或eval()语句中工作.)

理想情况下,解决方案可以在不需要将任何代码添加到子类的情况下工作......我能看到的唯一可能的解决方案是将以下代码添加到每个子类中,这显然是一个恶心的黑客攻击:

class FooBar extends Foo {
    static function _get_class_name() {
        return …
Run Code Online (Sandbox Code Playgroud)

php oop inheritance php-5.2

19
推荐指数
2
解决办法
1万
查看次数

是否可以在同一个项目中同时拥有iOS应用和Mac应用?

正如标题所说,我想知道在同一个项目中同时拥有iOS应用程序和Mac应用程序是否可行且合理.也就是说,Xcode项目具有Mac应用程序目标和iOS目标.

如果是这样,我应该注意什么,这是一个好主意.

一点上下文:我正在开发一个用于Web服务的客户端应用程序,它将在iOS和Mac平台之间共享许多API连接(模型层)代码.

iphone macos cocoa cocoa-touch ios

11
推荐指数
2
解决办法
1351
查看次数

Cocoa Text - 即时刷新文本

在我正在处理的应用程序中,用户输入纯文本,应用程序通过将文本转换为NSAttributedString来重新格式化文本,并显示它.一切都发生了.

目前,我在NSTextView的textDidChange委托方法上执行以下操作:

- (void)textDidChange:(NSNotification *)notification {

    // saving the cursor position
    NSInteger insertionPoint = [[[self.mainTextView selectedRanges] objectAtIndex:0] rangeValue].location;

    // this grabs the text view's contact as plain text
    [self updateContentFromTextView];

    // this creates an attributed strings and displays it
    [self updateTextViewFromContent];

    // resetting the cursor position
    self.mainTextView.selectedRange = NSMakeRange(insertionPoint, 0);
}
Run Code Online (Sandbox Code Playgroud)

虽然这主要起作用,但并不理想.文本似乎瞬间闪烁(你特别注意拼写错误下的红点),当光标先前接近可见矩形的一个边缘时,滚动位置会重置.就我而言,这是一个非常不受欢迎的副作用.

所以我的问题是:有没有更好的方法来做我想做的事情?

cocoa nstextview core-text

3
推荐指数
1
解决办法
1689
查看次数